Search in sources :

Example 1 with Person

use of org.datanucleus.samples.ann_xml.models.company.Person in project tests by datanucleus.

the class AnnotationPlusXMLTest method testPrimaryKey.

/**
 * Test of @PrimaryKey on a field (simple or complex).
 */
public void testPrimaryKey() {
    // Department (simple PK)
    ClassMetaData cmd = (ClassMetaData) metaDataMgr.getMetaDataForClass(Department.class.getName(), clr);
    String prefix = cmd.getFullClassName() + " : ";
    assertEquals(prefix + "number of PK members is wrong", 1, cmd.getNoOfPrimaryKeyMembers());
    AbstractMemberMetaData fmd = cmd.getMetaDataForMember("name");
    assertEquals(prefix + "field should be persistent", FieldPersistenceModifier.PERSISTENT, fmd.getPersistenceModifier());
    assertTrue(prefix + "pk is wrong", fmd.isPrimaryKey());
    // Person (complex PK)
    cmd = (ClassMetaData) metaDataMgr.getMetaDataForClass(Person.class.getName(), clr);
    prefix = cmd.getFullClassName() + " : ";
    assertEquals(prefix + "number of PK members is wrong", 2, cmd.getNoOfPrimaryKeyMembers());
    fmd = cmd.getMetaDataForMember("personNum");
    assertEquals(prefix + "field should be persistent", FieldPersistenceModifier.PERSISTENT, fmd.getPersistenceModifier());
    assertTrue(prefix + "pk is wrong", fmd.isPrimaryKey());
    ColumnMetaData[] colmds = fmd.getColumnMetaData();
    assertEquals("Name of first col of pk is incorrect", "PERSON_ID", colmds[0].getName());
    fmd = cmd.getMetaDataForMember("globalNum");
    assertEquals(prefix + "field should be persistent", FieldPersistenceModifier.PERSISTENT, fmd.getPersistenceModifier());
    assertTrue(prefix + "pk is wrong", fmd.isPrimaryKey());
    colmds = fmd.getColumnMetaData();
    assertEquals("Name of second col of pk is incorrect", "PERSON_GLOB_ID", colmds[0].getName());
}
Also used : ColumnMetaData(org.datanucleus.metadata.ColumnMetaData) AbstractMemberMetaData(org.datanucleus.metadata.AbstractMemberMetaData) Person(org.datanucleus.samples.ann_xml.models.company.Person) ClassMetaData(org.datanucleus.metadata.ClassMetaData)

Example 2 with Person

use of org.datanucleus.samples.ann_xml.models.company.Person in project tests by datanucleus.

the class AnnotationPlusXMLTest method testPersistenceCapable.

/**
 * Test of class based JDO annotations reading capability.
 */
public void testPersistenceCapable() {
    // Department
    ClassMetaData cmd = (ClassMetaData) metaDataMgr.getMetaDataForClass(Department.class.getName(), clr);
    String prefix = cmd.getFullClassName() + " : ";
    assertTrue(prefix + "detachable is wrong", cmd.isDetachable());
    assertEquals(prefix + "identity-type is wrong", IdentityType.APPLICATION, cmd.getIdentityType());
    assertFalse(prefix + "embedded-only is wrong", cmd.isEmbeddedOnly());
    assertTrue(prefix + "requires-extent is wrong", cmd.isRequiresExtent());
    assertNull(prefix + "catalog is wrong", cmd.getCatalog());
    assertNull(prefix + "schema is wrong", cmd.getSchema());
    assertEquals(prefix + "table is wrong", "DEPARTMENT", cmd.getTable());
    assertEquals(prefix + "has incorrect number of persistent fields", 3, cmd.getNoOfManagedMembers());
    // Project
    // ...
    // Person
    cmd = (ClassMetaData) metaDataMgr.getMetaDataForClass(Person.class.getName(), clr);
    prefix = cmd.getFullClassName() + " : ";
    assertFalse(prefix + "detachable is wrong", cmd.isDetachable());
    assertEquals(prefix + "identity-type is wrong", IdentityType.APPLICATION, cmd.getIdentityType());
    assertEquals(prefix + "objectid-class is wrong", Person.Id.class.getName(), cmd.getObjectidClass());
    assertFalse(prefix + "embedded-only is wrong", cmd.isEmbeddedOnly());
    assertTrue(prefix + "requires-extent is wrong", cmd.isRequiresExtent());
    assertNull(prefix + "catalog is wrong", cmd.getCatalog());
    assertNull(prefix + "schema is wrong", cmd.getSchema());
    assertEquals(prefix + "table is wrong", "PERSON", cmd.getTable());
    assertEquals(prefix + "has incorrect number of persistent fields", 7, cmd.getNoOfManagedMembers());
    assertEquals(prefix + "has incorrect number of fields", 10, // two non-persistent
    cmd.getNoOfMembers());
// Employee
// ...
}
Also used : Person(org.datanucleus.samples.ann_xml.models.company.Person) ClassMetaData(org.datanucleus.metadata.ClassMetaData)

Aggregations

ClassMetaData (org.datanucleus.metadata.ClassMetaData)2 Person (org.datanucleus.samples.ann_xml.models.company.Person)2 AbstractMemberMetaData (org.datanucleus.metadata.AbstractMemberMetaData)1 ColumnMetaData (org.datanucleus.metadata.ColumnMetaData)1