/** * $Id: ArrayOrderedMapTest.java 2 2008-10-01 10:04:26Z azeckoski $ * $URL: http://reflectutils.googlecode.com/svn/trunk/src/test/java/org/azeckoski/reflectutils/map/ArrayOrderedMapTest.java $ * ArrayOrderedMapTest.java - entity-broker - Aug 15, 2008 5:08:59 PM - azeckoski ************************************************************************** * Copyright (c) 2008 Aaron Zeckoski * Licensed under the Apache License, Version 2.0 * * A copy of the Apache License has been included in this * distribution and is available at: http://www.apache.org/licenses/LICENSE-2.0.txt * * Aaron Zeckoski (azeckoski@gmail.com) (aaronz@vt.edu) (aaron@caret.cam.ac.uk) */ package org.azeckoski.reflectutils.map; import java.util.Collection; import java.util.Enumeration; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; import java.util.Set; import java.util.Map.Entry; import junit.framework.TestCase; /** * testing the ordered map * * @author Aaron Zeckoski (azeckoski @ gmail.com) */ public class ArrayOrderedMapTest extends TestCase { private ArrayOrderedMap<String, String> m1 = null; @Override protected void setUp() throws Exception { m1 = new ArrayOrderedMap<String, String>(); m1.put("AAA", "aaronz"); m1.put("BBB", "beckyz"); m1.put("CCC", "cat"); } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#clear()}. */ public void testClear() { assertNotNull(m1); assertEquals(3, m1.size()); assertFalse(m1.isEmpty()); m1.clear(); assertNotNull(m1); assertEquals(0, m1.size()); assertTrue(m1.isEmpty()); } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#getKeys()}. */ public void testGetKeys() { List<String> keys = m1.getKeys(); assertNotNull(keys); assertEquals(3, keys.size()); assertEquals("AAA", keys.get(0)); assertEquals("BBB", keys.get(1)); assertEquals("CCC", keys.get(2)); } /** * testing the get values method */ public void testGetValues() { List<String> keys = m1.getValues(); assertNotNull(keys); assertEquals(3, keys.size()); assertEquals("aaronz", keys.get(0)); assertEquals("beckyz", keys.get(1)); assertEquals("cat", keys.get(2)); } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#getEntries()}. */ public void testGetEntries() { List<Entry<String, String>> entries = m1.getEntries(); assertNotNull(entries); assertEquals(3, entries.size()); assertEquals("AAA", entries.get(0).getKey()); assertEquals("BBB", entries.get(1).getKey()); assertEquals("CCC", entries.get(2).getKey()); assertEquals("aaronz", entries.get(0).getValue()); assertEquals("beckyz", entries.get(1).getValue()); assertEquals("cat", entries.get(2).getValue()); } public void testGet() { assertEquals("aaronz", m1.get("AAA")); assertEquals("beckyz", m1.get("BBB")); assertEquals("cat", m1.get("CCC")); assertEquals(null, m1.get("DDD")); m1.put("null", null); assertEquals(null, m1.get("null")); } public void testGetEntry() { Entry<String, String> entry = m1.getEntry(1); assertNotNull(entry); assertEquals("BBB", entry.getKey()); try { entry = m1.getEntry(5); fail("should have died"); } catch (IllegalArgumentException e) { assertNotNull(e.getMessage()); } } public void testPutKV() { m1.put("DDD", "dog"); assertEquals(4, m1.size()); m1.put("BBB", "beckers"); assertEquals(4, m1.size()); List<String> keys = m1.getKeys(); assertNotNull(keys); assertEquals(4, keys.size()); assertEquals("AAA", keys.get(0)); assertEquals("CCC", keys.get(1)); assertEquals("DDD", keys.get(2)); assertEquals("BBB", keys.get(3)); m1.put("DDD", "dog"); assertEquals(4, m1.size()); keys = m1.getKeys(); assertEquals(4, keys.size()); assertEquals("AAA", keys.get(0)); assertEquals("CCC", keys.get(1)); assertEquals("BBB", keys.get(2)); assertEquals("DDD", keys.get(3)); m1.put("NULL", null); assertEquals(5, m1.size()); assertTrue(m1.containsKey("NULL")); assertEquals(null, m1.get("NULL")); } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#remove(java.lang.Object)}. */ public void testRemoveObject() { String val = m1.remove("AAA"); assertNotNull(val); assertEquals("aaronz", val); assertEquals(2, m1.size()); List<String> keys = m1.getKeys(); assertNotNull(keys); assertEquals(2, keys.size()); assertEquals("BBB", keys.get(0)); assertEquals("CCC", keys.get(1)); val = m1.remove("EEE"); assertNull(val); } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#keys()}. */ public void testKeys() { Enumeration<String> e = m1.keys(); assertTrue( e.hasMoreElements() ); assertEquals(e.nextElement(), "AAA"); assertTrue( e.hasMoreElements() ); assertEquals(e.nextElement(), "BBB"); assertTrue( e.hasMoreElements() ); assertEquals(e.nextElement(), "CCC"); assertFalse( e.hasMoreElements() ); try { e.nextElement(); fail("should have died"); } catch (NoSuchElementException ne) { assertNotNull(ne.getMessage()); } } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#elements()}. */ public void testElements() { Enumeration<String> e = m1.elements(); assertTrue( e.hasMoreElements() ); assertEquals(e.nextElement(), "aaronz"); assertTrue( e.hasMoreElements() ); assertEquals(e.nextElement(), "beckyz"); assertTrue( e.hasMoreElements() ); assertEquals(e.nextElement(), "cat"); assertFalse( e.hasMoreElements() ); try { e.nextElement(); fail("should have died"); } catch (NoSuchElementException ne) { assertNotNull(ne.getMessage()); } } public void testKeySet() { Set<String> keys = m1.keySet(); assertEquals(3, keys.size()); Iterator<String> it = keys.iterator(); assertTrue( it.hasNext() ); assertEquals(it.next(), "AAA"); assertTrue( it.hasNext() ); assertEquals(it.next(), "BBB"); assertTrue( it.hasNext() ); assertEquals(it.next(), "CCC"); assertFalse( it.hasNext() ); try { it.next(); fail("should have died"); } catch (NoSuchElementException e) { assertNotNull(e.getMessage()); } // test remove it = keys.iterator(); it.next(); it.next(); it.remove(); assertEquals(2, keys.size()); assertEquals(2, m1.size()); // test remove all keys.clear(); assertEquals(0, keys.size()); assertTrue(keys.isEmpty()); assertEquals(0, m1.size()); assertTrue(m1.isEmpty()); } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#values()}. */ public void testValues() { Collection<String> values = m1.values(); assertEquals(3, values.size()); Iterator<String> it = values.iterator(); assertTrue( it.hasNext() ); assertEquals(it.next(), "aaronz"); assertTrue( it.hasNext() ); assertEquals(it.next(), "beckyz"); assertTrue( it.hasNext() ); assertEquals(it.next(), "cat"); assertFalse( it.hasNext() ); try { it.next(); fail("should have died"); } catch (NoSuchElementException e) { assertNotNull(e.getMessage()); } // test remove it = values.iterator(); it.next(); it.next(); it.remove(); assertEquals(2, values.size()); assertEquals(2, m1.size()); // test remove all values.clear(); assertEquals(0, values.size()); assertTrue(values.isEmpty()); assertEquals(0, m1.size()); assertTrue(m1.isEmpty()); } /** * Test method for {@link org.sakaiproject.entitybroker.util.map.OrderedMap#entrySet()}. */ public void testEntrySet() { Set<Entry<String, String>> entries = m1.entrySet(); assertEquals(3, entries.size()); Iterator<Entry<String, String>> it = entries.iterator(); assertTrue( it.hasNext() ); assertEquals(it.next().getKey(), "AAA"); assertTrue( it.hasNext() ); assertEquals(it.next().getKey(), "BBB"); assertTrue( it.hasNext() ); assertEquals(it.next().getKey(), "CCC"); assertFalse( it.hasNext() ); try { it.next(); fail("should have died"); } catch (NoSuchElementException e) { assertNotNull(e.getMessage()); } // test remove it = entries.iterator(); it.next(); it.next(); it.remove(); assertEquals(2, entries.size()); assertEquals(2, m1.size()); // test remove all entries.clear(); assertEquals(0, entries.size()); assertTrue(entries.isEmpty()); assertEquals(0, m1.size()); assertTrue(m1.isEmpty()); } }