svn commit: r17062 - trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java

Thomas Neustupny <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: thn
Date: 2009-04-07 02:28:32-0700
New Revision: 17062

Modified:
   trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java

Log:
fixing test by making it depend on ProfileMeta instead ProfileJava (which was removed)

Modified: trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java?view=diff&pathrev=17062&r1=17061&r2=17062
==============================================================================
--- trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java	(original)
+++ trunk/src/argouml-app/tests/org/argouml/kernel/TestProjectWithProfiles.java	2009-04-07 02:28:32-0700
@@ -32,6 +32,7 @@
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
 import junit.framework.TestCase;
@@ -45,6 +46,7 @@
 import org.argouml.persistence.PersistenceManager;
 import org.argouml.persistence.SaveException;
 import org.argouml.profile.Profile;
+import org.argouml.profile.ProfileException;
 import org.argouml.profile.ProfileFacade;
 import org.argouml.profile.ProfileManager;
 import org.argouml.profile.ProfileMother;
@@ -115,20 +117,20 @@
      * 
      * This test does:
      * <ol>
-     *   <li>set UML Profile for Java as a default profile</li> 
-     *   <li>create a new project and assert that it has the UML profile for 
-     *   Java as part of the project's profile configuration</li>
-     *   <li>create a dependency from the project's model to the UML profile 
-     *   for Java</li>
-     *   <li>remove the Java profile from the project's profile 
+     *   <li>set UML Profile for MetaProfile as a default profile</li> 
+     *   <li>create a new project and assert that it has the MetaProfile 
+     *   as part of the project's profile configuration</li>
+     *   <li>create a dependency from the project's model to the
+     *   MetaProfile</li>
+     *   <li>remove the MetaProfile from the project's profile 
      *   configuration</li>
      *   <li>assert that the project's model elements that had a dependency to 
-     *   the UML profile for Java don't get inconsistent</li>
+     *   the MetaProfile don't get inconsistent</li>
      *   <li>save the project into a new file</li>
-     *   <li>reopen the project and assert that the Java profile isn't part of 
+     *   <li>reopen the project and assert that the MetaProfile isn't part of 
      *   the profile configuration</li>
      *   <li>assert that the project's model elements that had a dependency to 
-     *   the UML profile for Java are consistent</li>
+     *   the MetaProfile are consistent</li>
      * </ol>
      * @throws OpenException if there was an error during a project load
      * @throws SaveException if there was an error during a project save
@@ -136,42 +138,48 @@
      */
     public void testRemoveProfileWithModelThatRefersToProfile()
         throws OpenException, SaveException, InterruptedException {
-        // set UML Profile for Java as a default profile
+        // set MetaProfile as a default profile
         ProfileManager profileManager = ProfileFacade.getManager();
-        Profile javaProfile = profileManager.getProfileForClass(
-                "org.argouml.profile.internal.ProfileJava");
-        if (!profileManager.getDefaultProfiles().contains(javaProfile)) {
-            profileManager.addToDefaultProfiles(javaProfile);
+        Profile metaProfile = profileManager.getProfileForClass(
+                "org.argouml.profile.internal.ProfileMeta");
+        if (!profileManager.getDefaultProfiles().contains(metaProfile)) {
+            profileManager.addToDefaultProfiles(metaProfile);
         }
-        // create a new project and assert that it has the UML profile for 
-        // Java as part of the project's profile configuration
+        // create a new project and assert that it has the MetaProfile 
+        // as part of the project's profile configuration
         Project project = ProjectManager.getManager().makeEmptyProject();
         assertTrue(project.getProfileConfiguration().getProfiles().contains(
-                javaProfile));
-        // create a dependency from the project's model to the UML profile for 
-        // Java
+                metaProfile));
+        Object pckge = null;
+        try {
+            pckge = metaProfile.getProfilePackages().iterator().next();
+        } catch (ProfileException pe) {
+            fail();
+        }
+        assertNotNull(pckge);
+        Object theStereotype = null;
+        Iterator iter = Model.getFacade().getOwnedElements(pckge).iterator();
+        while (theStereotype == null &&  iter.hasNext()) {
+            Object elem = iter.next();
+            if (Model.getFacade().isAStereotype(elem) &&
+                Model.getFacade().getName(elem).equals("Critic")) {
+                theStereotype = elem;
+            }
+        }
+        assertNotNull(theStereotype);
+        // create a dependency from the project's model to the MetaProfile
         Object model = project.getUserDefinedModelList().get(0);
         assertNotNull(model);
-        Object fooClass = Model.getCoreFactory().buildClass("Foo", model);
-        Object javaListType = project.findType("List", false);
-        assertNotNull(javaListType);
-        Object barOperation = Model.getCoreFactory().buildOperation2(fooClass, 
-                javaListType, "bar");
-        assertEquals(barOperation, 
-                getFacade().getOperations(fooClass).iterator().next());
-        Object returnParam = getFacade().getParameter(barOperation, 0);
-        assertNotNull(returnParam);
-        Object returnParamType = getFacade().getType(returnParam);
-        checkJavaListTypeExistsAndMatchesReturnParamType(project, 
-                returnParamType);
-        // remove the Java profile from the project's profile configuration
-        project.getProfileConfiguration().removeProfile(javaProfile);
-        // assert that the project's model elements that had a dependency to 
-        // the UML profile for Java don't get inconsistent
-        returnParamType = getFacade().getType(returnParam);
-        checkJavaListTypeExistsAndMatchesReturnParamType(project, 
-                returnParamType);
-        assertNotNull(project.findType("Foo", false));
+        Object foo = Model.getCoreFactory().buildComment(null, model);
+        Model.getCoreHelper().setName(foo, "foo");
+        Model.getCoreHelper().addStereotype(foo, theStereotype);
+        // remove the MetaProfile from the project's profile configuration
+        project.getProfileConfiguration().removeProfile(metaProfile);
+        // assert that the project's model element that had a dependency to 
+        // the MetaProfile doesn't get inconsistent
+        theStereotype =
+            Model.getFacade().getStereotypes(foo).iterator().next();
+        assertNotNull(theStereotype);
         // save the project into a new file
         File file = getFileInTestDir(
                 "testRemoveProfileWithModelThatRefersToProfile.zargo");
@@ -180,38 +188,35 @@
         persister.save(project, file);
         project.remove();
         
-        // reopen the project and assert that the Java profile isn't part of 
-        // the profile configuration, including the fact that the type 
-        // java.util.List isn't found
+        // reopen the project and assert that the MetaProfile isn't part of 
+        // the profile configuration, including the fact that the stereotype 
+        // <<Critic>> isn't found
         project = persister.doLoad(file);
         project.postLoad();
         assertFalse(project.getProfileConfiguration().getProfiles().contains(
-                javaProfile));
-        assertNull(project.findType("List", false));
+                metaProfile));
         // assert that the project's model elements that had a dependency to 
         // the UML profile for Java are consistent
-        fooClass = project.findType("Foo", false);
-        assertNotNull(fooClass);
-        barOperation = getFacade().getOperations(fooClass).iterator().next();
-        returnParam = getFacade().getParameter(barOperation, 0);
-        assertNotNull(returnParam);
-        // Return type was java.util.List from Java profile - should be gone
-        returnParamType = getFacade().getType(returnParam);
+        pckge = project.getUserDefinedModelList().get(0);
+        assertNotNull(pckge);
+        foo = null;
+        iter = Model.getFacade().getOwnedElements(pckge).iterator();
+        while (foo == null &&  iter.hasNext()) {
+            Object elem = iter.next();
+            if (Model.getFacade().isAComment(elem) &&
+                Model.getFacade().getName(elem).equals("foo")) {
+                foo = elem;
+            }
+        }
+        assertNotNull(foo);
+        theStereotype =
+            Model.getFacade().getStereotypes(foo).iterator().next();
+        assertNotNull(theStereotype);
         // TODO: with new reference resolving scheme, the model sub-system will
         // cache the systemId of the profile, open it and resolve the profile 
         // on its own. Thus, the java.util.List will be found and the return 
         // value will be present again...
-        assertNotNull(returnParamType);
-    }
-
-    private void checkJavaListTypeExistsAndMatchesReturnParamType(
-            Project project, Object returnParamType) {
-        Object javaListType = project.findType("List", false);
-        assertNotNull(javaListType);
-        assertEquals(getFacade().getName(javaListType), 
-                getFacade().getName(returnParamType));
-        assertEquals(getFacade().getNamespace(javaListType), 
-                getFacade().getNamespace(returnParamType));
+        //assertNotNull(returnParamType);
     }
 
     private File getFileInTestDir(String fileName) {

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=1574420

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.