01: package org.depunit;
02:
03: import java.util.Map;
04:
05: /**
06: Data drivers work like Java Iterators. It lets DepUnit iterate over
07: a set of test data.
08: */
09: public abstract class DataDriver {
10: private boolean m_locked = false;
11:
12: void internalReset() {
13: if (!m_locked)
14: reset();
15: }
16:
17: void lockReset() {
18: m_locked = true;
19: }
20:
21: void unlockReset() {
22: m_locked = false;
23: }
24:
25: /**
26: If this data driver is nested within another data driver the reset is called
27: for every iteration of the outer data driver
28: */
29: public abstract void reset();
30:
31: /**
32: Returns true if there is more data to be retrieved from getNextDataSet
33: */
34: public abstract boolean hasNextDataSet();
35:
36: /**
37: Returns a map of values to be set on the TestBean object before running tests.
38: If the test class has a method
39: <code>
40: setUserName();
41: setPassword();
42: </code>
43: then the map will contain something like
44: <code>
45: {
46: { "UserName", "Bob" },
47: { "Password", "secret" }
48: }
49: </code>
50: */
51: public abstract Map<String, ? extends Object> getNextDataSet()
52: throws Exception;
53: }
|