public void testModifyPrivateOwned() throws Exception { createTestTypeWithOneToOneAttribute(); OrmPersistentType ormPersistentType = getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); OrmSpecifiedPersistentAttribute ormPersistentAttribute = ormPersistentType.addAttributeToXml( ormPersistentType.getAttributeNamed("oneToOne"), MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY); EclipseLinkOneToOneMapping contextOneToOne = (EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping(); XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0); XmlOneToOne resourceOneToOne = (XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0); // check defaults assertFalse(resourceOneToOne.isPrivateOwned()); assertFalse(contextOneToOne.getPrivateOwned().isPrivateOwned()); // set context private owned to true, check resource contextOneToOne.getPrivateOwned().setPrivateOwned(true); assertTrue(resourceOneToOne.isPrivateOwned()); assertTrue(contextOneToOne.getPrivateOwned().isPrivateOwned()); // set context private owned back to false, check resource contextOneToOne.getPrivateOwned().setPrivateOwned(false); }
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 testModifyConverter() throws Exception { createTestEntityWithBasicMapping(); OrmPersistentType ormPersistentType = getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); OrmSpecifiedPersistentAttribute ormPersistentAttribute = ormPersistentType.addAttributeToXml( ormPersistentType.getAttributeNamed("id"), MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY); EclipseLinkOrmBasicMapping ormBasicMapping = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping(); EclipseLinkStructConverter ormConverter = ormBasicMapping.getConverterContainer().addStructConverter("structConverter", 0); XmlStructConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)) .getStructConverters() .get(0); assertEquals(null, ormConverter.getConverterClass()); assertEquals(null, converterResource.getConverter()); // set converter class in the context model, verify resource model updated ormConverter.setConverterClass("foo"); assertEquals("foo", ormConverter.getConverterClass()); assertEquals("foo", converterResource.getConverter()); ormConverter.setConverterClass(null); assertEquals(null, ormConverter.getConverterClass()); assertEquals(null, converterResource.getConverter()); }
public void testVirtualMappingMetadataCompleteFalse() 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"); assertEquals(3, ormPersistentType.getDefaultAttributesSize()); OrmPersistentAttribute virtualPersistentAttribute = ormPersistentType.getDefaultAttributes().iterator().next(); OneToOneMapping virtualOneToOneMapping = (OneToOneMapping) virtualPersistentAttribute.getMapping(); assertEquals("address", virtualOneToOneMapping.getName()); assertEquals(FetchType.LAZY, virtualOneToOneMapping.getSpecifiedFetch()); assertEquals(Boolean.FALSE, virtualOneToOneMapping.getSpecifiedOptional()); assertEquals("Address", virtualOneToOneMapping.getSpecifiedTargetEntity()); assertNull( virtualOneToOneMapping.getRelationship().getMappedByStrategy().getMappedByAttribute()); SpecifiedJoinColumn virtualJoinColumn = virtualOneToOneMapping .getRelationship() .getJoinColumnStrategy() .getSpecifiedJoinColumns() .iterator() .next(); assertEquals("MY_COLUMN", virtualJoinColumn.getSpecifiedName()); assertEquals("MY_REFERENCED_COLUMN", virtualJoinColumn.getSpecifiedReferencedColumnName()); assertEquals(Boolean.TRUE, virtualJoinColumn.getSpecifiedUnique()); assertEquals(Boolean.FALSE, virtualJoinColumn.getSpecifiedNullable()); assertEquals(Boolean.FALSE, virtualJoinColumn.getSpecifiedInsertable()); assertEquals(Boolean.FALSE, virtualJoinColumn.getSpecifiedUpdatable()); assertEquals("COLUMN_DEFINITION", virtualJoinColumn.getColumnDefinition()); assertEquals("MY_TABLE", virtualJoinColumn.getSpecifiedTableName()); Cascade cascade = virtualOneToOneMapping.getCascade(); assertTrue(cascade.isAll()); assertTrue(cascade.isMerge()); assertTrue(cascade.isPersist()); assertTrue(cascade.isRemove()); assertTrue(cascade.isRefresh()); assertEquals( EclipseLinkJoinFetchType.INNER, ((EclipseLinkJoinFetchMapping) virtualOneToOneMapping).getJoinFetch().getValue()); assertTrue( ((EclipseLinkOneToOneMapping) virtualOneToOneMapping).getPrivateOwned().isPrivateOwned()); }
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()); }
public void testModifyJoinFetch() throws Exception { createTestTypeWithOneToOneAttribute(); OrmPersistentType ormPersistentType = getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); OrmSpecifiedPersistentAttribute ormPersistentAttribute = ormPersistentType.addAttributeToXml( ormPersistentType.getAttributeNamed("oneToOne"), MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY); EclipseLinkOneToOneMapping contextOneToOne = (EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping(); XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0); XmlOneToOne resourceOneToOne = (XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0); // check defaults assertNull(resourceOneToOne.getJoinFetch()); assertNull(contextOneToOne.getJoinFetch().getValue()); // set context join fetch to INNER, check resource contextOneToOne.getJoinFetch().setValue(EclipseLinkJoinFetchType.INNER); assertEquals(XmlJoinFetchType.INNER, resourceOneToOne.getJoinFetch()); assertEquals(EclipseLinkJoinFetchType.INNER, contextOneToOne.getJoinFetch().getValue()); // set context join fetch to OUTER, check resource contextOneToOne.getJoinFetch().setValue(EclipseLinkJoinFetchType.OUTER); assertEquals(XmlJoinFetchType.OUTER, resourceOneToOne.getJoinFetch()); assertEquals(EclipseLinkJoinFetchType.OUTER, contextOneToOne.getJoinFetch().getValue()); // set context join fetch to null, check resource contextOneToOne.getJoinFetch().setValue(null); assertNull(resourceOneToOne.getJoinFetch()); assertNull(contextOneToOne.getJoinFetch().getValue()); }
public void testJoinFetchDefaultFromJava() throws Exception { createTestEmployee(); createTestDepartment(); getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Department"); getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Employee"); OrmPersistentType departmentPersistentType = getEntityMappings().getPersistentTypes().iterator().next(); EclipseLinkOneToOneMapping oneToOne = (EclipseLinkOneToOneMapping) departmentPersistentType.getAttributeNamed("employee").getMapping(); assertNull(oneToOne.getJoinFetch().getValue()); getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true); oneToOne = (EclipseLinkOneToOneMapping) departmentPersistentType.getAttributeNamed("employee").getMapping(); assertNull(oneToOne.getJoinFetch().getValue()); EclipseLinkRelationshipMapping javaRelationshipMapping = (EclipseLinkRelationshipMapping) departmentPersistentType .getJavaPersistentType() .getAttributeNamed("employee") .getMapping(); javaRelationshipMapping.getJoinFetch().setValue(EclipseLinkJoinFetchType.OUTER); assertNull(oneToOne.getJoinFetch().getValue()); getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false); oneToOne = (EclipseLinkOneToOneMapping) departmentPersistentType.getAttributeNamed("employee").getMapping(); assertEquals(EclipseLinkJoinFetchType.OUTER, oneToOne.getJoinFetch().getValue()); }
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()); }