public void testModifyName() throws Exception {
    OrmPersistentType ormPersistentType =
        getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
    OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
    OrmAttributeOverrideContainer overrideContainer = ormEntity.getAttributeOverrideContainer();

    XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
    entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride());
    XmlAttributeOverride attributeOverrideResource = entityResource.getAttributeOverrides().get(0);
    OrmSpecifiedAttributeOverride ormAttributeOverride =
        overrideContainer.getSpecifiedOverrides().iterator().next();

    assertNull(ormAttributeOverride.getName());
    assertNull(attributeOverrideResource.getName());

    // set name in the context model, verify resource model modified
    ormAttributeOverride.setName("foo");
    assertEquals("foo", ormAttributeOverride.getName());
    assertEquals("foo", attributeOverrideResource.getName());

    // set name to null in the context model
    ormAttributeOverride.setName(null);
    assertNull(ormAttributeOverride.getName());
    assertNull(entityResource.getAttributeOverrides().get(0).getName());
  }
  public void testVirtualMappingMetadataCompleteTrue() 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.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
    assertEquals(3, ormPersistentType.getDefaultAttributesSize());
    OrmPersistentAttribute virtualPersistentAttribute =
        ormPersistentType.getAttributeNamed("address");

    assertEquals(
        MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, virtualPersistentAttribute.getMappingKey());
    assertTrue(virtualPersistentAttribute.isVirtual());

    EclipseLinkOneToOneMapping ormOneToOneMapping =
        (EclipseLinkOneToOneMapping) virtualPersistentAttribute.getMapping();
    assertEquals("address", ormOneToOneMapping.getName());
    assertEquals(FetchType.EAGER, ormOneToOneMapping.getFetch());
    assertEquals(true, ormOneToOneMapping.isOptional());
    assertEquals("test.Address", ormOneToOneMapping.getTargetEntity());
    assertNull(ormOneToOneMapping.getRelationship().getMappedByStrategy().getMappedByAttribute());

    // TODO default join columns in xml one-to-one
    //		XmlJoinColumn ormJoinColumn = ormOneToOneMapping.specifiedJoinColumns().next();
    //		//TODO java default columns name in JavaSingleRelationshipMapping.JoinColumnOwner
    //		//assertEquals("address", ormJoinColumn.getSpecifiedName());
    //		//assertEquals("address", ormJoinColumn.getSpecifiedReferencedColumnName());
    //		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
    //		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedNullable());
    //		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedInsertable());
    //		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUpdatable());
    //		assertNull(ormJoinColumn.getColumnDefinition());
    //		assertEquals(TYPE_NAME, ormJoinColumn.getSpecifiedTable());

    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());
  }