public void testSpecifiedMapping() throws Exception {
    createTestEntityOneToOneMapping();
    createTestTargetEntityAddress();

    OrmPersistentType ormPersistentType =
        getEntityMappings()
            .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
    getEntityMappings()
        .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");

    ormPersistentType.addAttributeToXml(
        ormPersistentType.getAttributeNamed("address"),
        MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
    assertEquals(2, ormPersistentType.getDefaultAttributesSize());

    OrmSpecifiedPersistentAttribute ormPersistentAttribute =
        ormPersistentType.getSpecifiedAttributes().iterator().next();
    EclipseLinkOrmOneToOneMapping ormOneToOneMapping =
        (EclipseLinkOrmOneToOneMapping) ormPersistentAttribute.getMapping();

    assertEquals("address", ormOneToOneMapping.getName());
    assertNull(ormOneToOneMapping.getSpecifiedFetch());
    assertNull(ormOneToOneMapping.getSpecifiedOptional());
    assertNull(ormOneToOneMapping.getSpecifiedTargetEntity());
    assertNull(ormOneToOneMapping.getRelationship().getMappedByStrategy().getMappedByAttribute());
    assertEquals(FetchType.EAGER, ormOneToOneMapping.getFetch());
    assertEquals(true, ormOneToOneMapping.isOptional());
    // TODO default target entity in xml
    // assertEquals("test.Address", ormOneToOneMapping.getDefaultTargetEntity());

    assertTrue(
        ormOneToOneMapping.getRelationship().getJoinColumnStrategy().getJoinColumnsSize() > 0);

    // TODO default join columns for specified xmlOneToOne mapping
    //		XmlJoinColumn ormJoinColumn = ormOneToOneMapping.defaultJoinColumns().next();
    //		assertNull(ormJoinColumn.getSpecifiedName());
    //		assertNull(ormJoinColumn.getSpecifiedReferencedColumnName());
    //		assertNull(ormJoinColumn.getSpecifiedUnique());
    //		assertNull(ormJoinColumn.getSpecifiedNullable());
    //		assertNull(ormJoinColumn.getSpecifiedInsertable());
    //		assertNull(ormJoinColumn.getSpecifiedUpdatable());
    //		assertNull(ormJoinColumn.getColumnDefinition());
    //		assertNull(ormJoinColumn.getSpecifiedTable());
    //
    //		assertEquals("address", ormJoinColumn.getDefaultName());
    //		assertEquals("address", ormJoinColumn.getDefaultReferencedColumnName());
    //		assertEquals(Boolean.FALSE, ormJoinColumn.getDefaultUnique());
    //		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultNullable());
    //		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultInsertable());
    //		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultUpdatable());
    //		assertEquals(null, ormJoinColumn.getColumnDefinition());
    //		assertEquals(TYPE_NAME, ormJoinColumn.getDefaultTable());

    Cascade cascade = ormOneToOneMapping.getCascade();
    assertFalse(cascade.isAll());
    assertFalse(cascade.isMerge());
    assertFalse(cascade.isPersist());
    assertFalse(cascade.isRemove());
    assertFalse(cascade.isRefresh());

    assertEquals(null, ormOneToOneMapping.getJoinFetch().getValue());
    assertFalse(ormOneToOneMapping.getPrivateOwned().isPrivateOwned());
  }