Author: mvw Date: 2008-04-23 00:08:34-0700 New Revision: 14440 Modified: trunk/src/argouml-app/tests/org/argouml/ui/targetmanager/TestTargetManager.java
Log: Added test for issue 2093. Modified: trunk/src/argouml-app/tests/org/argouml/ui/targetmanager/TestTargetManager.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/tests/org/argouml/ui/targetmanager/TestTargetManager.java?view=diff&rev=14440&p1=trunk/src/argouml-app/tests/org/argouml/ui/targetmanager/TestTargetManager.java&p2=trunk/src/argouml-app/tests/org/argouml/ui/targetmanager/TestTargetManager.java&r1=14439&r2=14440 ============================================================================== --- trunk/src/argouml-app/tests/org/argouml/ui/targetmanager/TestTargetManager.java (original) +++ trunk/src/argouml-app/tests/org/argouml/ui/targetmanager/TestTargetManager.java 2008-04-23 00:08:34-0700 @@ -1,5 +1,5 @@ // $Id$ -// Copyright (c) 2002-2007 The Regents of the University of California. All +// Copyright (c) 2002-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 @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -44,10 +45,7 @@ import org.tigris.gef.presentation.FigRect; /** - * @author gebruiker - * - * To change the template for this generated type comment go to - * Window>Preferences>Java>Code Generation>Code and Comments + * Test the TargetManager. */ public class TestTargetManager extends TestCase { @@ -723,6 +721,102 @@ TargetManager.getInstance().removeTarget(list.get(0)); assertEquals(1, listener.counter); } + + /** + * Test the generation of events, + * and if there are not too many of them. <p> + * See issue 2093. + */ + public void testEvents() { + + class MyListener implements TargetListener { + int countAdd = 0; + int countRemove = 0; + int countSet = 0; + + public void targetAdded(TargetEvent e) { + countAdd++; + } + + public void targetRemoved(TargetEvent e) { + countRemove++; + } + + public void targetSet(TargetEvent e) { + countSet++; + } + + public void resetCounts() { + countAdd = 0; + countRemove = 0; + countSet = 0; + } + } + + MyListener listener = new MyListener(); + TargetManager.getInstance().addTargetListener(listener); + + // The target list is empty, re-emptying it again + // should not generate any events: + TargetManager.getInstance().setTargets(Collections.EMPTY_SET); + assertTrue(listener.countAdd == 0); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 0); + + // Setting one target should generate one event: + Object target1 = new Object(); + TargetManager.getInstance().setTarget(target1); + assertTrue(1 == TargetManager.getInstance().getTargets().size()); + assertTrue(listener.countAdd == 0); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 1); + listener.resetCounts(); + // set same target again should not generate new events: + TargetManager.getInstance().setTarget(target1); + assertTrue(1 == TargetManager.getInstance().getTargets().size()); + assertTrue(listener.countAdd == 0); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 0); + + Object target2 = new Object(); + TargetManager.getInstance().addTarget(target2); + assertTrue(2 == TargetManager.getInstance().getTargets().size()); + assertTrue(listener.countAdd == 1); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 0); + listener.resetCounts(); + // adding same target again should not generate new events: + TargetManager.getInstance().addTarget(target2); + assertTrue(2 == TargetManager.getInstance().getTargets().size()); + assertTrue(listener.countAdd == 0); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 0); + + // adding same targets list again should not generate new events: + Collection<Object> s = new ArrayList<Object>(); + s.add(target2); //reverse order + s.add(target1); + TargetManager.getInstance().setTargets(s); + assertTrue(2 == TargetManager.getInstance().getTargets().size()); + assertTrue(listener.countAdd == 0); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 0); + + //testing with subset of targets + Object target3 = new Object(); + TargetManager.getInstance().addTarget(target3); + assertTrue(3 == TargetManager.getInstance().getTargets().size()); + assertTrue(listener.countAdd == 1); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 0); + listener.resetCounts(); + // now remove one target by setting subset: + TargetManager.getInstance().setTargets(s); + assertTrue(2 == TargetManager.getInstance().getTargets().size()); + assertTrue(listener.countAdd == 0); + assertTrue(listener.countRemove == 0); + assertTrue(listener.countSet == 1); + } /** * Test navigate(). --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
