001    package org.hackystat.sensor.xmldata.util;
002    
003    import junit.framework.TestCase;
004    
005    /**
006     * Tests the SensorDataPropertyMap implementation.
007     * @author Philip M. Johnson
008     * @version $Id: TestSensorDataPropertyMap.java,v 1.1.1.1 2005/10/20 23:56:44
009     * johnson Exp $
010     */
011    public class TestSensorDataPropertyMap extends TestCase {
012      private static final String VALUE2 = "value2";
013      /**
014       * Tests the thread safe property map ADT.
015       * @throws Exception if problems occur.
016       */
017      public void testThreadSafePropertyMap() throws Exception {
018        // test normal creation, adding, getting.
019        SensorDataPropertyMap map = new SensorDataPropertyMap();
020        map.put("name1", "value1");
021        assertEquals("testing retrieve 1", "value1", map.get("name1"));
022        map.put("name2", VALUE2);
023        assertEquals("testing retrieve 2", VALUE2, map.get("name2"));
024        String encoding = map.encode();
025        SensorDataPropertyMap map2 = new SensorDataPropertyMap(encoding);
026        assertEquals("testing retrieve 3", "value1", map2.get("name1"));
027        assertEquals("testing retrieve 4", VALUE2, map2.get("name2"));
028        assertEquals("testing retrieve 5", null, map2.get("name3"));
029        assertEquals("testing retrieve 5", null, map2.get("name3"));
030        assertEquals("testing retrieve 6", "foo", map2.get("name3", "foo"));
031        assertEquals("testing retrieve 7", VALUE2, map2.getIgnoreCase("Name2"));
032        // Test to see that an encoded empty map is OK.
033        SensorDataPropertyMap map3 = new SensorDataPropertyMap();
034        String emptyEncoding = map3.encode();
035        new SensorDataPropertyMap(emptyEncoding);
036      }
037    }