1   /*
2    * Copyright (C) 2004 TiongHiang Lee
3    *
4    * This library is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Lesser General Public
6    * License as published by the Free Software Foundation; either
7    * version 2.1 of the License, or (at your option) any later version.
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this library; if not,  write to the Free Software
16   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17   *
18   * Email: thlee@onemindsoft.org
19   */
20  
21  package org.onemind.commons.java.datastructure;
22  
23  import java.util.HashMap;
24  import java.util.Map;
25  import org.onemind.commons.java.datastructure.TrackedMap;
26  import junit.framework.TestCase;
27  /***
28   * Test for TrackedMap
29   * @author TiongHiang Lee (thlee@onemindsoft.org)
30   * @version $Id: TrackedMapTest.java,v 1.2 2004/08/26 12:33:09 thlee Exp $ $Name:  $
31   */
32  public class TrackedMapTest extends TestCase
33  {
34  
35      public void testTrackedMap()
36      {
37          Object first = new String("first");
38          Object second = new String("second");
39          Object third = new String("third");
40          Map m = new HashMap();
41          m.put(first, first);
42          
43          //start with first
44          TrackedMap map = new TrackedMap(m);
45          assertEquals(map.size(), 1);
46          assertEquals(map.keySet().size(), 1);
47          assertEquals(map.values().size(), 1);
48          //replace first
49          map.put(first, first);
50          assertTrue(map.hasChanges());
51          assertEquals(map.size(), 1);
52          assertEquals(map.keySet().size(), 1);
53          assertEquals(map.values().size(), 1);
54          
55          //add second
56          map.put(second, second);
57          //assert that it's changed
58          assertTrue(map.hasChanges());
59          assertEquals(map.size(), 2);
60          assertEquals(map.keySet().size(), 2);
61          assertEquals(map.values().size(), 2);
62          
63          //make up-to-date
64          map.makeUpToDate();
65          assertTrue(!map.hasChanges());     
66          assertEquals(map.size(), 2);
67          assertEquals(map.keySet().size(), 2);
68          assertEquals(map.values().size(), 2);
69      }
70  }