ammulder    2005/07/27 22:36:31

  Modified:    modules/openejb-builder/src/test/org/openejb/deployment
                        CMPEntityBuilderTest.java
  Log:

  Convince myself that we'll definitely find both side of the relationship
    in a one-way many-to-many relationship.
  
  Revision  Changes    Path
  1.17      +38 -1     
openejb/modules/openejb-builder/src/test/org/openejb/deployment/CMPEntityBuilderTest.java
  
  Index: CMPEntityBuilderTest.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/CMPEntityBuilderTest.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- CMPEntityBuilderTest.java 21 Jul 2005 22:56:00 -0000      1.16
  +++ CMPEntityBuilderTest.java 28 Jul 2005 02:36:31 -0000      1.17
  @@ -386,6 +386,7 @@
           assertNotNull(mtmEntity);
           assertEquals("MTM", mtmEntity.getName());
           JoinDefinition joinDefinition = association.getLeftJoinDefinition();
  +        boolean isMappedToFKA1 = false, isMappedToFKB1 = false; // we must 
be able to map both entities to the MTM table
           if ( leftEntity == joinDefinition.getPKEntity() ) {
               LinkedHashMap linkedHashMap = joinDefinition.getPKToFKMapping();
               for (Iterator iter = linkedHashMap.entrySet().iterator(); 
iter.hasNext();) {
  @@ -396,6 +397,7 @@
                       assertEquals("field1", ((Attribute) 
entry.getKey()).getPhysicalName());
                   }
                   assertEquals("fka1", ((FKAttribute) 
entry.getValue()).getPhysicalName());
  +                isMappedToFKA1 = true;
               }
           } else if ( rightEntity == joinDefinition.getPKEntity() ) {
               LinkedHashMap linkedHashMap = joinDefinition.getPKToFKMapping();
  @@ -407,9 +409,44 @@
                       assertEquals("field1", ((Attribute) 
entry.getKey()).getPhysicalName());
                   }
                   assertEquals("fkb1", ((FKAttribute) 
entry.getValue()).getPhysicalName());
  +                isMappedToFKB1 = true;
               }
           } else {
               fail("JoinDefinitions are misconfigured.");
  +        }
  +        joinDefinition = association.getRightJoinDefinition();
  +        if ( leftEntity == joinDefinition.getPKEntity() ) {
  +            LinkedHashMap linkedHashMap = joinDefinition.getPKToFKMapping();
  +            for (Iterator iter = linkedHashMap.entrySet().iterator(); 
iter.hasNext();) {
  +                Map.Entry entry = (Map.Entry) iter.next();
  +                if ( leftEntity instanceof Table ) {
  +                    assertEquals("a1", ((Attribute) 
entry.getKey()).getPhysicalName());
  +                } else {
  +                    assertEquals("field1", ((Attribute) 
entry.getKey()).getPhysicalName());
  +                }
  +                assertEquals("fka1", ((FKAttribute) 
entry.getValue()).getPhysicalName());
  +                isMappedToFKA1 = true;
  +            }
  +        } else if ( rightEntity == joinDefinition.getPKEntity() ) {
  +            LinkedHashMap linkedHashMap = joinDefinition.getPKToFKMapping();
  +            for (Iterator iter = linkedHashMap.entrySet().iterator(); 
iter.hasNext();) {
  +                Map.Entry entry = (Map.Entry) iter.next();
  +                if ( rightEntity instanceof Table ) {
  +                    assertEquals("b1", ((Attribute) 
entry.getKey()).getPhysicalName());
  +                } else {
  +                    assertEquals("field1", ((Attribute) 
entry.getKey()).getPhysicalName());
  +                }
  +                assertEquals("fkb1", ((FKAttribute) 
entry.getValue()).getPhysicalName());
  +                isMappedToFKB1 = true;
  +            }
  +        } else {
  +            fail("JoinDefinitions are misconfigured.");
  +        }
  +        if(!isMappedToFKA1) {
  +            fail("No mapping present from A.a1 to MTM.fka1");
  +        }
  +        if(!isMappedToFKB1) {
  +            fail("No mapping present from B.b1 to MTM.fkb1");
           }
       }
   }
  
  
  

Reply via email to