use of org.datanucleus.metadata.NullValue in project tests by datanucleus.
the class BasicTest method testLoadingMetaDataForPackage.
/**
* Tests the loading of XML metadata specified in package,jdo.
*/
public void testLoadingMetaDataForPackage() {
MetaDataManager mmgr = new PersistenceNucleusContextImpl("JDO", null).getMetaDataManager();
ClassLoaderResolver clr = new ClassLoaderResolverImpl();
// Validate metadata for DateWidget
AbstractClassMetaData cmd = mmgr.getMetaDataForClass(DateWidget.class, clr);
assertNotNull("ClassMetaData is null!", cmd);
assertEquals("Class name", DateWidget.class.getName(), cmd.getFullClassName());
assertEquals("Package name", "org.datanucleus.samples.widget", cmd.getPackageName());
assertEquals("Superclass", Widget.class.getName(), cmd.getPersistableSuperclass());
assertEquals("Identity type", IdentityType.DATASTORE, cmd.getIdentityType());
assertNull("Identity class", cmd.getObjectidClass());
assertNotNull("Inheritance", cmd.getInheritanceMetaData());
assertEquals("Inheritance strategy", cmd.getInheritanceMetaData().getStrategy().toString(), "new-table");
String[] sortedFieldNames = new String[] { "dateField", "dateJdbcTimestampField", "sqlDateField", "sqlTimestampField" };
Assert.assertEquals("Field count", sortedFieldNames.length, cmd.getNoOfManagedMembers());
for (int i = 0; i < sortedFieldNames.length; ++i) {
AbstractMemberMetaData fmd = cmd.getMetaDataForManagedMemberAtRelativePosition(i);
String s = sortedFieldNames[i];
assertEquals(s, fmd.getName());
assertEquals(s + " persistence modifier", FieldPersistenceModifier.PERSISTENT, fmd.getPersistenceModifier());
assertEquals(s + " primary key", false, fmd.isPrimaryKey());
assertEquals(s + " null value handling", NullValue.NONE, fmd.getNullValue());
assertEquals(s + " default fetch group", true, fmd.isDefaultFetchGroup());
assertNull(s + " collection metadata", fmd.getContainer());
assertNull(s + " map metadata", fmd.getContainer());
}
// Validate metadata for FloatWidget
cmd = mmgr.getMetaDataForClass(FloatWidget.class, clr);
assertNotNull("Metadata", cmd);
assertEquals("Class name", FloatWidget.class.getName(), cmd.getFullClassName());
assertEquals("Package name", "org.datanucleus.samples.widget", cmd.getPackageName());
assertEquals("Superclass", Widget.class.getName(), cmd.getPersistableSuperclass());
assertEquals("Identity type", IdentityType.DATASTORE, cmd.getIdentityType());
assertNull("Identity class", cmd.getObjectidClass());
sortedFieldNames = new String[] { "doubleField", "doubleObjField", "floatField", "floatObjField" };
NullValue[] nullValueHandlings = new NullValue[] { NullValue.EXCEPTION, NullValue.NONE, NullValue.EXCEPTION, NullValue.NONE };
assertEquals("Field count", sortedFieldNames.length, cmd.getNoOfManagedMembers());
for (int i = 0; i < sortedFieldNames.length; ++i) {
AbstractMemberMetaData fmd = cmd.getMetaDataForManagedMemberAtRelativePosition(i);
String s = sortedFieldNames[i];
Assert.assertEquals(s, fmd.getName());
Assert.assertEquals(s + " persistence modifier", FieldPersistenceModifier.PERSISTENT, fmd.getPersistenceModifier());
Assert.assertEquals(s + " primary key", false, fmd.isPrimaryKey());
Assert.assertEquals(s + " null value handling", nullValueHandlings[i], fmd.getNullValue());
Assert.assertEquals(s + " default fetch group", true, fmd.isDefaultFetchGroup());
Assert.assertNull(s + " collection metadata", fmd.getContainer());
Assert.assertNull(s + " map metadata", fmd.getContainer());
}
}
Aggregations