Author: tfmorris Date: 2008-04-18 20:20:55-0700 New Revision: 14380 Modified: trunk/src/app/tests/org/argouml/model/TestCollaborationsHelper.java
Log: More tests for uncovered functionality (and some that's only covered by GUI tests) Modified: trunk/src/app/tests/org/argouml/model/TestCollaborationsHelper.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/app/tests/org/argouml/model/TestCollaborationsHelper.java?view=diff&rev=14380&p1=trunk/src/app/tests/org/argouml/model/TestCollaborationsHelper.java&p2=trunk/src/app/tests/org/argouml/model/TestCollaborationsHelper.java&r1=14379&r2=14380 ============================================================================== --- trunk/src/app/tests/org/argouml/model/TestCollaborationsHelper.java (original) +++ trunk/src/app/tests/org/argouml/model/TestCollaborationsHelper.java 2008-04-18 20:20:55-0700 @@ -25,6 +25,10 @@ // $header$ package org.argouml.model; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; + import junit.framework.TestCase; /** @@ -42,9 +46,11 @@ super(arg0); } + @Override protected void setUp() throws Exception { super.setUp(); InitializeModel.initializeDefault(); +// new InitProfileSubsystem().init(); } /** @@ -64,4 +70,148 @@ Model.getCollaborationsFactory(), TestCollaborationsFactory.getAllModelElements()); } + + /** + * Test allAvailableFeatures and allAvailableContents including + * inheritance from generalizations. + */ + public void testAllAvailable() { + Object model = Model.getModelManagementFactory().createModel(); + Object collab = + Model.getCollaborationsFactory().buildCollaboration(model); + Object class1 = Model.getCoreFactory().buildClass(model); + Object class2 = Model.getCoreFactory().buildClass(model); + Object intType = Model.getCoreFactory().buildDataType("int", model); + Object attr = Model.getCoreFactory().buildAttribute2(class2, intType); + Object class3 = Model.getCoreFactory().buildClass(model); + Object op = Model.getCoreFactory().buildOperation(class3, intType); + Object class4 = Model.getCoreFactory().buildClass(class3); + + Object role1 = + Model.getCollaborationsFactory().buildClassifierRole(collab); + Model.getCollaborationsHelper().addBase(role1, class1); + Object role2 = + Model.getCollaborationsFactory().buildClassifierRole(collab); + Model.getCollaborationsHelper().addBase(role2, class2); + Object role3 = + Model.getCollaborationsFactory().buildClassifierRole(collab); + Model.getCollaborationsHelper().addBase(role3, class3); + Object gen = Model.getCoreFactory().buildGeneralization(role3, role2); + + assertEquals("Didn't find all classifier roles", 3, + Model.getCollaborationsHelper() + .getAllClassifierRoles(collab).size()); + + Collection features = + Model.getCollaborationsHelper().allAvailableFeatures(role1); + assertEquals("Wrong number of features", 0, features.size()); + features = + Model.getCollaborationsHelper().allAvailableFeatures(role2); + assertEquals("Wrong number of features", 1, features.size()); + features = + Model.getCollaborationsHelper().allAvailableFeatures(role3); + assertEquals("Wrong number of features", 2, features.size()); + assertTrue("Didn't find expected attribute", features.contains(attr)); + assertTrue("Didn't find expected operation", features.contains(op)); + assertFalse("Found unexpected nested class in features", + features.contains(class4)); + + Collection contents = + Model.getCollaborationsHelper().allAvailableContents(role3); + assertEquals("Wrong number of elements in contents", 1, + contents.size()); + assertTrue("Didn't find expected nested class", + contents.contains(class4)); + + Model.getUmlFactory().delete(model); + } + + /** + * Test various forms of addBase/setBase for ClassifierRole. + */ + public void testAddBases() { + Object model = Model.getModelManagementFactory().createModel(); + Object collab = + Model.getCollaborationsFactory().buildCollaboration(model); + Object class1 = Model.getCoreFactory().buildClass(model); + Object class2 = Model.getCoreFactory().buildClass(model); + + Object assoc = Model.getCoreFactory().buildAssociation(class1, class2); + + Object role1 = + Model.getCollaborationsFactory().buildClassifierRole(collab); + Object role2 = + Model.getCollaborationsFactory().buildClassifierRole(collab); + Model.getCollaborationsHelper().addBase(role1, class1); + try { + Model.getCollaborationsHelper().addBase(role2, class1); + fail("addBase for second unnamed classifier role didn't fail"); + } catch (IllegalArgumentException e) { + // expected case + } + Model.getCoreHelper().setName(role1, "role1"); + Model.getCoreHelper().setName(role2, "role2"); + // This should work now that they both have names + Model.getCollaborationsHelper().addBase(role2, class1); + + Model.getCollaborationsHelper().setBases(role2, Collections.emptySet()); + assertEquals("Wrong number of bases", 0, Model.getFacade().getBases( + role2).size()); + Collection bases = new ArrayList(); + bases.add(class1); + bases.add(class2); + Model.getCollaborationsHelper().setBases(role2, bases); + Collection fetchedBases = Model.getFacade().getBases(role2); + assertEquals("Wrong number of bases", 2, fetchedBases.size()); + assertTrue("Didn't find expected base", fetchedBases.contains(class1)); + assertTrue("Didn't find expected base", fetchedBases.contains(class2)); + Model.getCollaborationsHelper().removeBase(role2, class1); + fetchedBases = Model.getFacade().getBases(role2); + assertEquals("Wrong number of bases", 1, fetchedBases.size()); + assertFalse("Base wasn't removed", fetchedBases.contains(class1)); + Model.getUmlFactory().delete(model); + } + + /** + * Test AssociationRoles. + */ + public void testAssociationRole() { + + Object model = Model.getModelManagementFactory().createModel(); + Object collab = + Model.getCollaborationsFactory().buildCollaboration(model); + Object class1 = Model.getCoreFactory().buildClass(model); + Object class2 = Model.getCoreFactory().buildClass(model); + Object assoc1 = Model.getCoreFactory().buildAssociation(class1, class2); + Object assoc2 = Model.getCoreFactory().buildAssociation(class1, class2); + + + Object role1 = + Model.getCollaborationsFactory().buildClassifierRole(collab); + assertNotNull(role1); + assertEquals("found wrong number of possible bases", 2, Model + .getCollaborationsHelper().getAllPossibleBases(role1).size()); + Model.getCollaborationsHelper().addBase(role1, class1); + + Object role2 = + Model.getCollaborationsFactory().buildClassifierRole(collab); + Model.getCollaborationsHelper().addBase(role2, class2); + + assertEquals("Found wrong number of possible association roles", 2, + Model.getCollaborationsHelper().getAllPossibleAssociationRoles( + role1).size()); + Object assocRole = + Model.getCollaborationsFactory().buildAssociationRole(role1, role2); + assertNotNull(assocRole); + + assertEquals("getAssocationRole returned wrong result", assocRole, + Model.getCollaborationsHelper() + .getAssociationRole(role1, role2)); + + assertEquals("Didn't find connected classifier role", 1, Model + .getCollaborationsHelper().getClassifierRoles(role1).size()); + + + Model.getUmlFactory().delete(model); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
