Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmJoinColumnTests.java')
-rw-r--r--jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmJoinColumnTests.java506
1 files changed, 506 insertions, 0 deletions
diff --git a/jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmJoinColumnTests.java b/jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmJoinColumnTests.java
new file mode 100644
index 0000000000..fd43faa562
--- /dev/null
+++ b/jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmJoinColumnTests.java
@@ -0,0 +1,506 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.core.tests.internal.context.orm;
+
+import org.eclipse.jpt.jpa.core.JptJpaCorePlugin;
+import org.eclipse.jpt.jpa.core.MappingKeys;
+import org.eclipse.jpt.jpa.core.context.orm.OrmJoinColumn;
+import org.eclipse.jpt.jpa.core.context.orm.OrmJoinTable;
+import org.eclipse.jpt.jpa.core.context.orm.OrmManyToManyMapping;
+import org.eclipse.jpt.jpa.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.jpa.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.jpa.core.resource.orm.XmlJoinColumn;
+import org.eclipse.jpt.jpa.core.resource.orm.XmlJoinTable;
+import org.eclipse.jpt.jpa.core.resource.orm.XmlManyToMany;
+import org.eclipse.jpt.jpa.core.resource.persistence.PersistenceFactory;
+import org.eclipse.jpt.jpa.core.resource.persistence.XmlMappingFileRef;
+import org.eclipse.jpt.jpa.core.tests.internal.context.ContextModelTestCase;
+
+@SuppressWarnings("nls")
+public class OrmJoinColumnTests extends ContextModelTestCase
+{
+ public OrmJoinColumnTests(String name) {
+ super(name);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
+ mappingFileRef.setFileName(JptJpaCorePlugin.DEFAULT_ORM_XML_RUNTIME_PATH.toString());
+ getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
+ getPersistenceXmlResource().save(null);
+ }
+
+ public void testUpdateSpecifiedName() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(joinColumn.getSpecifiedName());
+ assertNull(joinColumnResource.getName());
+
+ //set name in the resource model, verify context model updated
+ joinColumnResource.setName("FOO");
+ assertEquals("FOO", joinColumn.getSpecifiedName());
+ assertEquals("FOO", joinColumnResource.getName());
+
+ //set name to null in the resource model
+ joinColumnResource.setName(null);
+ assertNull(joinColumn.getSpecifiedName());
+ assertNull(joinColumnResource.getName());
+
+ joinColumnResource.setName("FOO");
+ assertEquals("FOO", joinColumn.getSpecifiedName());
+ assertEquals("FOO", joinColumnResource.getName());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedName() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(joinColumn.getSpecifiedName());
+ assertNull(joinColumnResource.getName());
+
+ //set name in the context model, verify resource model modified
+ joinColumn.setSpecifiedName("foo");
+ assertEquals("foo", joinColumn.getSpecifiedName());
+ assertEquals("foo", joinColumnResource.getName());
+
+ //set name to null in the context model
+ joinColumn.setSpecifiedName(null);
+ assertNull(joinColumn.getSpecifiedName());
+ assertNull(joinTableResource.getJoinColumns().get(0).getName());
+ }
+
+ public void testUpdateSpecifiedReferencedColumnName() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(joinColumn.getSpecifiedReferencedColumnName());
+ assertNull(joinColumnResource.getReferencedColumnName());
+
+ //set name in the resource model, verify context model updated
+ joinColumnResource.setReferencedColumnName("FOO");
+ assertEquals("FOO", joinColumn.getSpecifiedReferencedColumnName());
+ assertEquals("FOO", joinColumnResource.getReferencedColumnName());
+
+ //set name to null in the resource model
+ joinColumnResource.setReferencedColumnName(null);
+ assertNull(joinColumn.getSpecifiedReferencedColumnName());
+ assertNull(joinColumnResource.getReferencedColumnName());
+
+ joinColumnResource.setReferencedColumnName("FOO");
+ assertEquals("FOO", joinColumn.getSpecifiedReferencedColumnName());
+ assertEquals("FOO", joinColumnResource.getReferencedColumnName());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedReferencedColumnName() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(joinColumn.getSpecifiedReferencedColumnName());
+ assertNull(joinColumnResource.getReferencedColumnName());
+
+ //set name in the context model, verify resource model modified
+ joinColumn.setSpecifiedReferencedColumnName("foo");
+ assertEquals("foo", joinColumn.getSpecifiedReferencedColumnName());
+ assertEquals("foo", joinColumnResource.getReferencedColumnName());
+
+ //set name to null in the context model
+ joinColumn.setSpecifiedReferencedColumnName(null);
+ assertNull(joinColumn.getSpecifiedReferencedColumnName());
+ assertNull(joinTableResource.getJoinColumns().get(0).getReferencedColumnName());
+ }
+
+ public void testUpdateSpecifiedColumnDefinition() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(joinColumn.getColumnDefinition());
+ assertNull(joinColumnResource.getColumnDefinition());
+
+ //set name in the resource model, verify context model updated
+ joinColumnResource.setColumnDefinition("FOO");
+ assertEquals("FOO", joinColumn.getColumnDefinition());
+ assertEquals("FOO", joinColumnResource.getColumnDefinition());
+
+ //set name to null in the resource model
+ joinColumnResource.setColumnDefinition(null);
+ assertNull(joinColumn.getColumnDefinition());
+ assertNull(joinColumnResource.getColumnDefinition());
+
+ joinColumnResource.setColumnDefinition("FOO");
+ assertEquals("FOO", joinColumn.getColumnDefinition());
+ assertEquals("FOO", joinColumnResource.getColumnDefinition());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedColumnDefinition() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(joinColumn.getColumnDefinition());
+ assertNull(joinColumnResource.getColumnDefinition());
+
+ //set name in the context model, verify resource model modified
+ joinColumn.setColumnDefinition("foo");
+ assertEquals("foo", joinColumn.getColumnDefinition());
+ assertEquals("foo", joinColumnResource.getColumnDefinition());
+
+ //set name to null in the context model
+ joinColumn.setColumnDefinition(null);
+ assertNull(joinColumn.getColumnDefinition());
+ assertNull(joinTableResource.getJoinColumns().get(0).getColumnDefinition());
+ }
+
+ public void testUpdateSpecifiedTable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedTable());
+ assertNull(joinColumnResource.getTable());
+
+ //set table in the resource model, verify context model updated
+ joinColumnResource.setTable("FOO");
+ assertEquals("FOO", ormJoinColumn.getSpecifiedTable());
+ assertEquals("FOO", joinColumnResource.getTable());
+
+ //set table to null in the resource model
+ joinColumnResource.setTable(null);
+ assertNull(ormJoinColumn.getSpecifiedTable());
+ assertNull(joinColumnResource.getTable());
+
+ joinColumnResource.setTable("FOO");
+ assertEquals("FOO", ormJoinColumn.getSpecifiedTable());
+ assertEquals("FOO", joinColumnResource.getTable());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedTable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedTable());
+ assertNull(joinColumnResource.getTable());
+
+ //set table in the context model, verify resource model modified
+ ormJoinColumn.setSpecifiedTable("foo");
+ assertEquals("foo", ormJoinColumn.getSpecifiedTable());
+ assertEquals("foo", joinColumnResource.getTable());
+
+ //set table to null in the context model
+ ormJoinColumn.setSpecifiedTable(null);
+ assertNull(ormJoinColumn.getSpecifiedTable());
+ assertNull(joinTableResource.getJoinColumns().get(0).getTable());
+ }
+
+ public void testUpdateSpecifiedNullable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedNullable());
+ assertNull(joinColumnResource.getNullable());
+
+ //set nullable in the resource model, verify context model updated
+ joinColumnResource.setNullable(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedNullable());
+ assertEquals(Boolean.TRUE, joinColumnResource.getNullable());
+
+ //set nullable to null in the resource model
+ joinColumnResource.setNullable(null);
+ assertNull(ormJoinColumn.getSpecifiedNullable());
+ assertNull(joinColumnResource.getNullable());
+
+ joinColumnResource.setNullable(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
+ assertEquals(Boolean.FALSE, joinColumnResource.getNullable());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedNullable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedNullable());
+ assertNull(joinColumnResource.getNullable());
+
+ //set nullable in the context model, verify resource model modified
+ ormJoinColumn.setSpecifiedNullable(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
+ assertEquals(Boolean.FALSE, joinColumnResource.getNullable());
+
+ //set nullable to null in the context model
+ ormJoinColumn.setSpecifiedNullable(null);
+ assertNull(ormJoinColumn.getSpecifiedNullable());
+ assertNull(joinTableResource.getJoinColumns().get(0).getNullable());
+ }
+
+ public void testUpdateSpecifiedUpdatable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedUpdatable());
+ assertNull(joinColumnResource.getUpdatable());
+
+ //set updatable in the resource model, verify context model updated
+ joinColumnResource.setUpdatable(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUpdatable());
+ assertEquals(Boolean.TRUE, joinColumnResource.getUpdatable());
+
+ //set updatable to null in the resource model
+ joinColumnResource.setUpdatable(null);
+ assertNull(ormJoinColumn.getSpecifiedUpdatable());
+ assertNull(joinColumnResource.getUpdatable());
+
+ joinColumnResource.setUpdatable(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
+ assertEquals(Boolean.FALSE, joinColumnResource.getUpdatable());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedUpdatable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedUpdatable());
+ assertNull(joinColumnResource.getUpdatable());
+
+ //set updatable in the context model, verify resource model modified
+ ormJoinColumn.setSpecifiedUpdatable(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
+ assertEquals(Boolean.FALSE, joinColumnResource.getUpdatable());
+
+ //set updatable to null in the context model
+ ormJoinColumn.setSpecifiedUpdatable(null);
+ assertNull(ormJoinColumn.getSpecifiedUpdatable());
+ assertNull(joinTableResource.getJoinColumns().get(0).getUpdatable());
+ }
+
+ public void testUpdateSpecifiedInsertable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedInsertable());
+ assertNull(joinColumnResource.getInsertable());
+
+ //set insertable in the resource model, verify context model updated
+ joinColumnResource.setInsertable(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedInsertable());
+ assertEquals(Boolean.TRUE, joinColumnResource.getInsertable());
+
+ //set insertable to null in the resource model
+ joinColumnResource.setInsertable(null);
+ assertNull(ormJoinColumn.getSpecifiedInsertable());
+ assertNull(joinColumnResource.getInsertable());
+
+ joinColumnResource.setInsertable(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
+ assertEquals(Boolean.FALSE, joinColumnResource.getInsertable());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedInsertable() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedInsertable());
+ assertNull(joinColumnResource.getInsertable());
+
+ //set insertable in the context model, verify resource model modified
+ ormJoinColumn.setSpecifiedInsertable(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
+ assertEquals(Boolean.FALSE, joinColumnResource.getInsertable());
+
+ //set insertable to null in the context model
+ ormJoinColumn.setSpecifiedInsertable(null);
+ assertNull(ormJoinColumn.getSpecifiedInsertable());
+ assertNull(joinTableResource.getJoinColumns().get(0).getInsertable());
+ }
+
+ public void testUpdateSpecifiedUnique() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedUnique());
+ assertNull(joinColumnResource.getUnique());
+
+ //set unique in the resource model, verify context model updated
+ joinColumnResource.setUnique(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUnique());
+ assertEquals(Boolean.TRUE, joinColumnResource.getUnique());
+
+ //set unique to null in the resource model
+ joinColumnResource.setUnique(null);
+ assertNull(ormJoinColumn.getSpecifiedUnique());
+ assertNull(joinColumnResource.getUnique());
+
+ joinColumnResource.setUnique(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
+ assertEquals(Boolean.FALSE, joinColumnResource.getUnique());
+
+ joinTableResource.getJoinColumns().remove(0);
+ assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
+ assertTrue(joinTableResource.getJoinColumns().isEmpty());
+ }
+
+ public void testModifySpecifiedUnique() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
+ OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
+ XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
+
+ OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationship().getJoinTableStrategy().getJoinTable();
+ OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
+ XmlJoinTable joinTableResource = manyToMany.getJoinTable();
+ XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
+
+ assertNull(ormJoinColumn.getSpecifiedUnique());
+ assertNull(joinColumnResource.getUnique());
+
+ //set unique in the context model, verify resource model modified
+ ormJoinColumn.setSpecifiedUnique(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
+ assertEquals(Boolean.FALSE, joinColumnResource.getUnique());
+
+ //set unique to null in the context model
+ ormJoinColumn.setSpecifiedUnique(null);
+ assertNull(ormJoinColumn.getSpecifiedUnique());
+ assertNull(joinTableResource.getJoinColumns().get(0).getUnique());
+ }
+
+} \ No newline at end of file

Back to the top