svn commit: r14220 - trunk/src/app/tests/org/argouml/cognitive

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: linus
Date: 2008-03-24 00:58:03-0700
New Revision: 14220

Added:
   trunk/src/app/tests/org/argouml/cognitive/TestDecision.java   (contents, props changed)
   trunk/src/app/tests/org/argouml/cognitive/TestGoal.java   (contents, props changed)
   trunk/src/app/tests/org/argouml/cognitive/TestGoalModel.java   (contents, props changed)
   trunk/src/app/tests/org/argouml/cognitive/TestStandardCM.java   (contents, props changed)

Log:
Added some more tests.

Contributed by Scott Roberts.

Added: trunk/src/app/tests/org/argouml/cognitive/TestDecision.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/app/tests/org/argouml/cognitive/TestDecision.java?view=auto&rev=14220
==============================================================================
--- (empty file)
+++ trunk/src/app/tests/org/argouml/cognitive/TestDecision.java	2008-03-24 00:58:03-0700
@@ -0,0 +1,97 @@
+// $Id$
+// Copyright (c) 2008 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies.  This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason.  IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+package org.argouml.cognitive;
+
+import junit.framework.TestCase;
+
+/**
+ * Testing the initialization of a Decision.
+ */
+public class TestDecision extends TestCase {
+
+    /**
+     * The constructor.
+     *
+     * @param name the name of the test.
+     */
+    public TestDecision(String name) {
+	super(name);
+    }
+
+    /**
+     * @see junit.framework.TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+	super.setUp();
+    }
+
+    /**
+     * Test constructor and some basic methods.
+     */
+    public void testBasics() {
+	
+	// initialize basic parameters that are
+	// different from Decision.UNSPEC
+	int priority = 2;
+	String name = "misc.decision.inheritance";
+	String translatedName = Translator.localize(name);
+	
+	// initialize a decision object with parameters
+	Decision decision = new Decision(name, priority);
+	
+	// verify parameters were initialized correctly by the constructor
+	assertTrue("Decision.getName() is incorrect",
+		decision.getName() == translatedName);
+	assertTrue("Decision.toString() is incorrect",
+		decision.toString() == translatedName);	
+	assertTrue("Decision.getPriority() is incorrect",
+		decision.getPriority() == priority);
+	
+	// set the priority to a different value
+	priority = 1;
+	decision.setPriority(priority);
+	
+	// verify the priority was correctly updated
+	assertTrue("Decision.setPriority() failed",
+		decision.getPriority() == priority);
+	
+	// set the name to a different value
+	name = "misc.decision.uncategorized";
+	translatedName = Translator.localize(name);
+	decision.setName(translatedName);
+	
+	// verify the name property was correctly updated
+	assertTrue("Decision.setName() failed",
+		decision.getName() == translatedName);
+	assertTrue("Decision.toString() is incorrect",
+		decision.toString() == translatedName);
+	
+	// following the update the priority should be
+	// equivalent to Decision.UNSPEC
+	assertTrue("Decision.equals(Decision) failed",
+		decision.equals(Decision.UNSPEC));
+    }
+}

Added: trunk/src/app/tests/org/argouml/cognitive/TestGoal.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/app/tests/org/argouml/cognitive/TestGoal.java?view=auto&rev=14220
==============================================================================
--- (empty file)
+++ trunk/src/app/tests/org/argouml/cognitive/TestGoal.java	2008-03-24 00:58:03-0700
@@ -0,0 +1,101 @@
+// $Id$
+// Copyright (c) 2008 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies.  This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason.  IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+package org.argouml.cognitive;
+
+import junit.framework.TestCase;
+
+/**
+ * Testing the initialization of a Decision.
+ */
+public class TestGoal extends TestCase {
+
+    /**
+     * The constructor.
+     *
+     * @param name the name of the test.
+     */
+    public TestGoal(String name) {
+	super(name);
+    }
+
+    /**
+     * @see junit.framework.TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+	super.setUp();
+    }
+
+    /**
+     * Test constructor and some basic methods.
+     */
+    public void testBasics() {
+	
+	// initialize the GoalModel
+	GoalModel goalModel = new GoalModel();
+	Goal unspecifiedGoal = Goal.getUnspecifiedGoal();
+	
+	// check that the model was initialized with one goal
+	assertTrue("GoalModel not initialized with one goal",
+		goalModel.getGoalList().size() == 1);
+	
+	// check that the model was initialized with the unspecified goal
+	assertTrue("GoalModel not initilized with UnspecifiedGoal",
+		goalModel.hasGoal(unspecifiedGoal.getName()));
+	
+	// update the priority of the unspecified goal so we can verify it was updated
+	goalModel.setGoalPriority(unspecifiedGoal.getName(),
+		unspecifiedGoal.getPriority()+1);
+	
+	// first verify that the set goal priority did not add an extra goal
+	assertTrue("GoalModel.setGoalPriority added an extra Goal",
+		goalModel.getGoalList().size() == 1);
+	
+	// check that the model correctly updates a goals priority
+	assertTrue("GoalModel not correctly updating goal priority",
+		goalModel.getGoalList().get(0).getPriority() == unspecifiedGoal.getPriority()+1);
+	
+	// test the removal of a goal
+	goalModel.removeGoal(unspecifiedGoal);
+	
+	// number of goals should now be 0
+	assertTrue("GoalModel.removeGoal(goalName) failed",
+		goalModel.getGoalList().size() == 0);
+	
+	// start desiring a goal which should add a goal and bump the size to one
+	goalModel.startDesiring(unspecifiedGoal.getName());
+	
+	// number of goals should now be 1
+	assertTrue("GoalModel.startDesiring did not add a Goal",
+		goalModel.getGoalList().size() == 1);
+	
+	// stop desiring the goal which should remove it from the model
+	goalModel.stopDesiring(unspecifiedGoal.getName());
+	
+	// number of goals should now be 0
+	assertTrue("GoalModel.stopDesiring(goalName) failed",
+		goalModel.getGoalList().size() == 0);
+    }
+}

Added: trunk/src/app/tests/org/argouml/cognitive/TestGoalModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/app/tests/org/argouml/cognitive/TestGoalModel.java?view=auto&rev=14220
==============================================================================
--- (empty file)
+++ trunk/src/app/tests/org/argouml/cognitive/TestGoalModel.java	2008-03-24 00:58:03-0700
@@ -0,0 +1,97 @@
+// $Id$
+// Copyright (c) 2008 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies.  This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason.  IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+package org.argouml.cognitive;
+
+import junit.framework.TestCase;
+
+/**
+ * Testing the initialization of a Decision.
+ */
+public class TestGoalModel extends TestCase {
+
+    /**
+     * The constructor.
+     *
+     * @param name the name of the test.
+     */
+    public TestGoalModel(String name) {
+	super(name);
+    }
+
+    /**
+     * @see junit.framework.TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+	super.setUp();
+    }
+
+    /**
+     * Test constructor and some basic methods.
+     */
+    public void testBasics() {
+	
+	// initialize basic parameters that are
+	// different from Decision.UNSPEC
+	int priority = 2;
+	String name = "misc.decision.inheritance";
+	String translatedName = Translator.localize(name);
+	
+	// initialize a decision object with parameters
+	Decision decision = new Decision(name, priority);
+	
+	// verify parameters were initialized correctly by the constructor
+	assertTrue("Decision.getName() is incorrect",
+		decision.getName() == translatedName);
+	assertTrue("Decision.toString() is incorrect",
+		decision.toString() == translatedName);	
+	assertTrue("Decision.getPriority() is incorrect",
+		decision.getPriority() == priority);
+	
+	// set the priority to a different value
+	priority = 1;
+	decision.setPriority(priority);
+	
+	// verify the priority was correctly updated
+	assertTrue("Decision.setPriority() failed",
+		decision.getPriority() == priority);
+	
+	// set the name to a different value
+	name = "misc.decision.uncategorized";
+	translatedName = Translator.localize(name);
+	decision.setName(translatedName);
+	
+	// verify the name property was correctly updated
+	assertTrue("Decision.setName() failed",
+		decision.getName() == translatedName);
+	assertTrue("Decision.toString() is incorrect",
+		decision.toString() == translatedName);
+	
+	// following the update the priority should be
+	// equivalent to Decision.UNSPEC
+	assertTrue("Decision.equals(Decision) failed",
+		decision.equals(Decision.UNSPEC));
+    }
+}

Added: trunk/src/app/tests/org/argouml/cognitive/TestStandardCM.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/app/tests/org/argouml/cognitive/TestStandardCM.java?view=auto&rev=14220
==============================================================================
--- (empty file)
+++ trunk/src/app/tests/org/argouml/cognitive/TestStandardCM.java	2008-03-24 00:58:03-0700
@@ -0,0 +1,156 @@
+// $Id$
+// Copyright (c) 2008 The Regents of the University of California. All
+// Rights Reserved. Permission to use, copy, modify, and distribute this
+// software and its documentation without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph appear in all copies.  This software program and
+// documentation are copyrighted by The Regents of the University of
+// California. The software program and documentation are supplied "AS
+// IS", without any accompanying services from The Regents. The Regents
+// does not warrant that the operation of the program will be
+// uninterrupted or error-free. The end-user understands that the program
+// was developed for research purposes and is advised not to rely
+// exclusively on the program for any reason.  IN NO EVENT SHALL THE
+// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+package org.argouml.cognitive;
+
+import junit.framework.TestCase;
+
+/**
+ * Testing the initialization of a Decision.
+ */
+public class TestStandardCM extends TestCase {
+
+    /**
+     * The constructor.
+     *
+     * @param name the name of the test.
+     */
+    public TestStandardCM(String name) {
+	super(name);
+    }
+
+    /**
+     * @see junit.framework.TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+	super.setUp();
+    }
+
+    /**
+     * Test isRelevant method of EnabledCM.
+     */
+    public void testEnabledCM() {
+	
+	Critic critic = new Critic();
+	EnabledCM cm = new EnabledCM();
+	
+	// EnabledCM isRelevant checks if the critic is enabled
+	// initialize this to true to verify isRelevant returns true
+	critic.setEnabled(true);
+	
+	// verify isRelevant returns true
+	assertTrue("EnabledCM.isRelevant(Critic, Designer) is incorrect",
+		cm.isRelevant(critic, Designer.theDesigner()));
+	
+	// set enabled to false and check the opposite condition
+	critic.setEnabled(false);
+	
+	// verify isRelevant not is false
+	assertTrue("EnabledCM.isRelevant(Critic, Designer) is incorrect",
+		!cm.isRelevant(critic, Designer.theDesigner()));
+    }
+
+    /**
+     * Test isRelevant method of NotSnoozedCM.
+     */
+    public void testNotSnoozedCM() {
+	
+	Critic critic = new Critic();
+	NotSnoozedCM cm = new NotSnoozedCM();
+	
+	// NotSnoozedCM isRelevant checks if the critic is snoozed
+	// snooze the critic to verify isRelevant returns false
+	critic.snooze();
+	
+	// verify isRelevant returns true
+	assertTrue("NotSnoozedCM.isRelevant(Critic, Designer) is incorrect " +
+			"when critic snoozed",
+		!cm.isRelevant(critic, Designer.theDesigner()));
+	
+	// unsnooze the critic to verify the critic is not relevant
+	critic.unsnooze();
+	
+	// verify isRelevant is true
+	assertTrue("NotSnoozedCM.isRelevant(Critic, Designer) is incorrect " +
+			"when critic not snoozed",
+		cm.isRelevant(critic, Designer.theDesigner()));
+    }
+
+    /**
+     * Test isRelevant method of DesignGoalsCM.
+     */
+    public void testDesignGoalsCM() {
+	
+	Critic critic = new Critic();
+	DesignGoalsCM cm = new DesignGoalsCM();
+	
+	// DesignGoalsCM checks if the critic isRelevantToGoals of the Designer
+	// this value is always true for the Critic base class so DesignerGoalsCM
+	// should always return true in this condition
+	assertTrue("DesignGoalsCM.isRelevant(Critic, Designer) is incorrect",
+		cm.isRelevant(critic, Designer.theDesigner()));	
+    }
+
+    /**
+     * Test isRelevant method of CurDecisionCM.
+     */
+    public void testCurDecisionCM() {
+	
+	Critic critic = new Critic();
+	CurDecisionCM cm = new CurDecisionCM();
+	
+	// CurDecisionCM isRelevant checks to see if the critic has
+	// any decisions that have a priority > 0 and less than the
+	// priority of the critic.  By default the critic has no
+	// decisions so isRelevant should return false.
+	assertTrue("CurDecisionCM.isRelevant(Critic, Designer) is incorrect " +
+			"when critic has 0 decisions",
+		!cm.isRelevant(critic, Designer.theDesigner()));
+	
+	// add a decision but set the critic priority to 0 so isRelevant
+	// should still be false
+	critic.setPriority(0);
+	critic.addSupportedDecision(Decision.UNSPEC);
+	
+	// verify isRelevant is still false
+	assertTrue("CurDecisionCM.isRelevant(Critic, Designer) is " +
+			"incorrect with one decision and critic has priority 0",
+		!cm.isRelevant(critic, Designer.theDesigner()));
+	
+	// update the priority of the critic to be the same priority as the decision
+	critic.setPriority(Decision.UNSPEC.getPriority());
+	
+	// isRelevant should now be true
+	assertTrue("CurDecisionCM.isRelevant(Critic, Designer) is incorrect with " +
+			"one decision and priority has equal priority",
+		cm.isRelevant(critic, Designer.theDesigner()));
+	
+	critic.setPriority(Decision.UNSPEC.getPriority()+1);
+	// isRelevant should still be true
+	assertTrue("CurDecisionCM.isRelevant(Critic, Designer) is incorrect with one " +
+			"decision and priority has greater priority",
+		cm.isRelevant(critic, Designer.theDesigner()));
+    }
+ }
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.