Class TopiaDatabase

java.lang.Object
org.junit.rules.TestWatcher
org.nuiton.topia.TopiaDatabase
All Implemented Interfaces:
org.junit.rules.TestRule

public class TopiaDatabase extends org.junit.rules.TestWatcher
Put this class as a Rule in test to obtain a new isolated db for each test. Here is a simple example of usage :
 public class MyTest {

   \@Rule
   public final TopiaDatabase db = new TopiaDatabase();

   \@Test
   public void testMethod() throws TopiaException {

       TopiaContext tx = db.beginTransaction();
       ...
 }
 
The db created will be unique for each test method (and for each build also). You don't need to close any transaction, it will be done for you and the end of each method test.
Since:
2.6.8
Author:
tchemit <chemit@codelutin.com>
  • Field Details

    • TIMESTAMP

      public static final String TIMESTAMP
      A time-stamp, allow to make multiple build and keep the tests data.
  • Constructor Details

    • TopiaDatabase

      public TopiaDatabase()
    • TopiaDatabase

      public TopiaDatabase(String configurationPath)
  • Method Details

    • starting

      protected void starting(org.junit.runner.Description description)
      Overrides:
      starting in class org.junit.rules.TestWatcher
    • finished

      public void finished(org.junit.runner.Description description)
      Overrides:
      finished in class org.junit.rules.TestWatcher
    • getTestBasedir

      public File getTestBasedir()
    • getRootCtxt

      public org.nuiton.topia.TopiaContext getRootCtxt()
    • getDbConfiguration

      public Properties getDbConfiguration()
    • beginTransaction

      public org.nuiton.topia.TopiaContext beginTransaction() throws org.nuiton.topia.TopiaException
      Throws:
      org.nuiton.topia.TopiaException
    • onDbConfigurationCreate

      protected void onDbConfigurationCreate(Properties configuration, File testDir, String dbPath)
    • getTestSpecificDirectory

      public static File getTestSpecificDirectory(Class<?> testClassName, String methodName)