/**
* Constructor (no-argument).
*/
- public void IDServiceJdbcImpl() {
+ public void IDServiceJdbcImpl() throws IllegalStateException {
// @TODO Decide when and how to fail at startup, or else to correct
// failure conditions automatically, when preconditions are not met.
// Currently, errors at initialization are merely informative and
// result in exceptions that can be persistently logged.
- init();
+ try {
+ init();
+ } catch (IllegalStateException e) {
+ throw e;
+ }
}
- // @TODO init() and hasTable() are currently UNTESTED as of 2009-08-11T13:00-0700.
+ // @TODO init() is currently UNTESTED as of 2009-08-11T13:00-0700.
//////////////////////////////////////////////////////////////////////
/**
"Error instantiating JDBC driver class '" +
JDBC_DRIVER_CLASSNAME +
"' to set up database connection.");
- } catch (IllegalAccessException e) {
- throw new IllegalStateException(
- "Error accessing JDBC driver class '" +
- JDBC_DRIVER_CLASSNAME +
- "' to set up database connection.");
+ } catch (IllegalAccessException e) {
+ throw new IllegalStateException(
+ "Error accessing JDBC driver class '" +
+ JDBC_DRIVER_CLASSNAME +
+ "' to set up database connection.");
}
}
IDPattern pattern;
try {
- pattern = IDPatternSerializer.deserialize(serializedGenerator);
+ pattern = IDGeneratorSerializer.deserialize(serializedGenerator);
} catch (IllegalArgumentException e) {
throw e;
}
String serializedGenerator = "";
try {
- serializedGenerator = IDPatternSerializer.serialize(pattern);
+ serializedGenerator = IDGeneratorSerializer.serialize(pattern);
} catch (IllegalArgumentException e) {
throw e;
}
String serializedGenerator = "";
try {
- serializedGenerator = IDPatternSerializer.serialize(pattern);
+ serializedGenerator = IDGeneratorSerializer.serialize(pattern);
} catch (IllegalArgumentException e) {
throw e;
}
IDPattern pattern;
try {
- pattern = IDPatternSerializer.deserialize(serializedGenerator);
+ pattern = IDGeneratorSerializer.deserialize(serializedGenerator);
} catch (IllegalArgumentException e) {
throw e;
}
import org.collectionspace.services.id.*;
-import junit.framework.TestCase;
-import static org.junit.Assert.*;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.testng.Assert;
+import org.testng.annotations.Test;
/**
* IDServiceJdbcImplTest
* $LastChangedRevision: 302 $
* $LastChangedDate$
*/
-public class IDServiceJdbcImplTest extends TestCase {
+public class IDServiceJdbcImplTest {
// *IMPORTANT*
// @TODO This class is in an early state of a refactoring to
IDServiceJdbcImpl jdbc = new IDServiceJdbcImpl();
IDService service = jdbc;
-
+
+ final static String TABLE_NAME = "id_generators";
final static String DEFAULT_CSID = "TEST-1";
- @BeforeClass
- public static void setUpOnce() {
- // @TODO Check for service preconditions before running tests.
- }
-
@Test
- public void testPlaceholder() {
- // Placeholder test to avoid "org.testng.TestNGException:
- // Failure in JUnit mode ...: could not create/run JUnit test suite"
- // errors until we add working tests to this class.
+ public void hasRequiredDatabaseTable() {
+ Assert.assertTrue(
+ jdbc.hasTable(TABLE_NAME),
+ "Table '" + TABLE_NAME + "' must exist in database. " +
+ "Please first run SQL setup script, 'create_id_generators_table.sql', in 'id' project.");
}
- @Test
- public void testAddIDGenerator() {
+ @Test(dependsOnMethods = {"hasRequiredDatabaseTable"})
+ public void addIDGenerator() {
jdbc.addIDGenerator(DEFAULT_CSID, getSpectrumEntryNumberGenerator());
}
- @Test
- public void testReadIDGenerator() {
+ @Test(dependsOnMethods = {"addIDGenerator"})
+ public void readIDGenerator() {
serializedGenerator = jdbc.getIDGenerator(DEFAULT_CSID);
- pattern = IDPatternSerializer.deserialize(serializedGenerator);
- assertEquals(DEFAULT_CSID, pattern.getCsid());
+ pattern = IDGeneratorSerializer.deserialize(serializedGenerator);
+ Assert.assertEquals(DEFAULT_CSID, pattern.getCsid());
}
- @Test
- public void testUpdateIDGenerator() {
+ @Test(dependsOnMethods = {"addIDGenerator"})
+ public void updateIDGenerator() {
final String NEW_DESCRIPTION = "new description";
// Retrieve an existing generator, deserialize it,
// update its contents, serialize it, and write it back.
serializedGenerator = jdbc.getIDGenerator(DEFAULT_CSID);
- pattern = IDPatternSerializer.deserialize(serializedGenerator);
+ pattern = IDGeneratorSerializer.deserialize(serializedGenerator);
pattern.setDescription(NEW_DESCRIPTION);
- serializedGenerator = IDPatternSerializer.serialize(pattern);
+ serializedGenerator = IDGeneratorSerializer.serialize(pattern);
jdbc.updateIDGenerator(DEFAULT_CSID, serializedGenerator);
serializedGenerator = jdbc.getIDGenerator(DEFAULT_CSID);
- pattern = IDPatternSerializer.deserialize(serializedGenerator);
+ pattern = IDGeneratorSerializer.deserialize(serializedGenerator);
- assertEquals(NEW_DESCRIPTION, pattern.getDescription());
+ Assert.assertEquals(NEW_DESCRIPTION, pattern.getDescription());
}
- @Test
- public void testDeleteIDGenerator() {
+ @Test(dependsOnMethods = {"addIDGenerator", "readIDGenerator"})
+ public void deleteIDGenerator() {
jdbc.deleteIDGenerator(DEFAULT_CSID);
}
- @Test
- public void testNewIDValidPattern() {
+ @Test(dependsOnMethods = {"addIDGenerator", "deleteIDGenerator"})
+ public void newIDValidPattern() {
csid = DEFAULT_CSID;
jdbc.addIDGenerator(csid, getSpectrumEntryNumberGenerator());
- assertEquals("E1", service.newID("TEST-1"));
- assertEquals("E2", service.newID("TEST-1"));
- assertEquals("E3", service.newID("TEST-1"));
+ Assert.assertEquals("E1", service.newID("TEST-1"));
+ Assert.assertEquals("E2", service.newID("TEST-1"));
+ Assert.assertEquals("E3", service.newID("TEST-1"));
try {
jdbc.deleteIDGenerator(csid);
jdbc.addIDGenerator(csid, getChinAccessionNumberGenerator());
String currentYear = YearIDGenerator.getCurrentYear();
- assertEquals(currentYear + ".1.1", service.newID("TEST-1"));
- assertEquals(currentYear + ".1.2", service.newID("TEST-1"));
- assertEquals(currentYear + ".1.3", service.newID("TEST-1"));
+ Assert.assertEquals(currentYear + ".1.1", service.newID("TEST-1"));
+ Assert.assertEquals(currentYear + ".1.2", service.newID("TEST-1"));
+ Assert.assertEquals(currentYear + ".1.3", service.newID("TEST-1"));
try {
jdbc.deleteIDGenerator(csid);
// 1. The ID Service is running and accessible to this test; and
// 2. There is no ID pattern retrievable through that service
// with the identifier 'non-existent identifier'.
- @Test
- public void testNextIDInvalidPattern() {
-
- try {
- nextId = service.newID("non-existent identifier");
- fail("Should have thrown IllegalArgumentException here");
- } catch (IllegalArgumentException expected) {
- // This Exception should be thrown, and thus the test should pass.
- }
-
+ @Test(dependsOnMethods = {"hasRequiredDatabaseTable"},
+ expectedExceptions = IllegalArgumentException.class)
+ public void newIDInvalidPattern() {
+ nextId = service.newID("non-existent identifier");
}
// ---------------------------------------------------------------
pattern.add(new StringIDPart("E"));
pattern.add(new NumericIDPart("1"));
- return IDPatternSerializer.serialize(pattern);
+ return IDGeneratorSerializer.serialize(pattern);
}
pattern.add(new StringIDPart("."));
pattern.add(new NumericIDPart("1"));
- return IDPatternSerializer.serialize(pattern);
+ return IDGeneratorSerializer.serialize(pattern);
}