1 package net.sf.tomp.djunit;
2
3 import junit.framework.TestCase;
4
5 import java.io.IOException;
6
7 public abstract class TestCaseBase extends TestCase
8 {
9 private TestData testData;
10
11 public TestCaseBase()
12 {
13 super();
14 }
15
16 public TestCaseBase(String name)
17 {
18 super(name);
19 }
20
21 protected abstract Provider getProvider();
22
23 protected TestData getTestData()
24 throws IOException
25 {
26 if (testData == null)
27 {
28
29 Provider p = getProvider();
30
31 synchronized (p)
32 {
33 testData = p.getTestData(getTestDataName());
34 }
35 }
36
37 return testData;
38 }
39
40 protected String getTestDataName()
41 {
42 return this.getClass().getName() + "." + getName();
43 }
44 }