001: /*
002: * Danet GmbH
003: * Beratung und Software-Entwicklung
004: * Geschäftstelle AN
005: *
006: * $Id: CollectUtils.java,v 1.1.1.1 2003/06/30 20:07:00 drmlipp Exp $
007: *
008: * $Log: CollectUtils.java,v $
009: * Revision 1.1.1.1 2003/06/30 20:07:00 drmlipp
010: * Initial import
011: *
012: * Revision 1.1 2002/11/05 10:16:49 schlue
013: * Tracked map added.
014: *
015: *
016: */
017: package util;
018:
019: import java.util.HashMap;
020: import java.util.Map;
021:
022: import de.danet.an.util.CollectionsUtil;
023:
024: import junit.framework.Test;
025: import junit.framework.TestCase;
026: import junit.framework.TestSuite;
027:
028: /**
029: * Tests the CollectionsUtil
030: * @version 1.0
031: */
032: public class CollectUtils extends TestCase {
033: /**
034: * Konstruktor zum Erzeugen eines TestCase
035: * @param name a <code>String</code> value
036: */
037: public CollectUtils(String name) {
038: super (name);
039: }
040:
041: /**
042: * Assembling the test suite
043: * @return a <code>Test</code> value
044: * @exception Exception if an error occurs
045: */
046: public static Test suite() throws Exception {
047: TestSuite suite = new TestSuite();
048: suite.addTest(new CollectUtils("createMap"));
049: suite.addTest(new CollectUtils("modifyMap"));
050:
051: return suite;
052: }
053:
054: /**
055: * Test creation of a tracked map.
056: * @exception Exception if an error occurs
057: */
058: public void createMap() throws Exception {
059: Map map = new HashMap();
060: assertTrue(!CollectionsUtil.isTracked(map));
061: boolean noValidModificationTest = false;
062: try {
063: CollectionsUtil.hasBeenModified(map);
064: } catch (IllegalArgumentException ia) {
065: noValidModificationTest = true;
066: }
067: assertTrue(noValidModificationTest);
068: map = CollectionsUtil.trackedMap(map);
069: assertTrue(CollectionsUtil.isTracked(map));
070: assertTrue(!CollectionsUtil.hasBeenModified(map));
071: }
072:
073: /**
074: * Test modification of a tracked map.
075: * @exception Exception if an error occurs
076: */
077: public void modifyMap() throws Exception {
078: Map map = new HashMap();
079: map.put("a", "A");
080: map.put("b", "B");
081: map.put("c", "C");
082: map = CollectionsUtil.trackedMap(map);
083: assertTrue(!CollectionsUtil.hasBeenModified(map));
084: map.put("a", "A");
085: assertTrue(CollectionsUtil.hasBeenModified(map));
086: assertTrue(!CollectionsUtil.hasBeenModified(map));
087: map.remove("b");
088: assertTrue(CollectionsUtil.hasBeenModified(map));
089: assertTrue(!CollectionsUtil.hasBeenModified(map));
090: assertTrue(!map.containsKey("b"));
091: assertTrue(map.containsKey("c"));
092: assertTrue(map.containsValue("C"));
093: assertTrue(!map.containsValue("c"));
094: assertTrue(map.size() == 2);
095: Map map2 = new HashMap();
096: map2.put("1", "eins");
097: map2.put("2", "zwei");
098: map2.put("3", "drei");
099: assertTrue(!CollectionsUtil.hasBeenModified(map));
100: map.putAll(map2);
101: assertTrue(CollectionsUtil.hasBeenModified(map));
102: assertTrue(!CollectionsUtil.hasBeenModified(map));
103: assertTrue(map.size() == 5);
104: try {
105: map.putAll(null);
106: } catch (NullPointerException exc) {
107: }
108: assertTrue(!CollectionsUtil.hasBeenModified(map));
109: map.clear();
110: assertTrue(CollectionsUtil.hasBeenModified(map));
111: assertTrue(!CollectionsUtil.hasBeenModified(map));
112: assertTrue(map.size() == 0);
113: }
114: }
|