@Override public void accept(final String s, final Object o) { original.remove("a"); } });
@Override public void accept(final String s, final Object o, final Object o2) { original.remove("a"); } }, null);
@Test public void testRemoveNullsOutRemovedSlot() throws Exception { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("a", "avalue"); original.putValue("b", "bvalue"); original.putValue("c", "cvalue"); original.putValue("d", "dvalue"); original.remove("a"); original.remove("b"); original.remove("c"); original.remove("d"); assertNull(original.getValueAt(0)); // ensure slots in the values array are nulled out final Field f = SortedArrayStringMap.class.getDeclaredField("values"); f.setAccessible(true); final Object[] values = (Object[]) f.get(original); for (int i = 0; i < values.length; i++) { assertNull(values[i]); } }
@Test public void testFreezeAllowsRemoveIfEmpty() { final SortedArrayStringMap original = new SortedArrayStringMap(); original.freeze(); original.remove("a"); // no exception }
@Test(expected = UnsupportedOperationException.class) public void testFreezeProhibitsRemove() { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("b", "bbb"); original.freeze(); original.remove("b"); // existing key: modifies the collection }
@Test public void testFreezeAllowsRemoveOfNonExistingKey() { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("b", "bbb"); original.freeze(); original.remove("a"); // no actual modification }
@Test public void testRemoveWhenFull() throws Exception { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("a", "avalue"); original.putValue("b", "bvalue"); original.putValue("c", "cvalue"); original.putValue("d", "dvalue"); // default capacity = 4 original.remove("d"); }
@Test public void testRemove() { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("a", "avalue"); assertEquals(1, original.size()); assertEquals("avalue", original.getValue("a")); original.remove("a"); assertEquals(0, original.size()); assertNull("no a val", original.getValue("a")); original.remove("B"); assertEquals(0, original.size()); assertNull("no B val", original.getValue("B")); }
@Test public void testSizeAndIsEmpty() throws Exception { final SortedArrayStringMap original = new SortedArrayStringMap(); assertEquals(0, original.size()); assertTrue("initial", original.isEmpty()); original.putValue("a", "avalue"); assertEquals(1, original.size()); assertFalse("size=" + original.size(), original.isEmpty()); original.putValue("B", "Bvalue"); assertEquals(2, original.size()); assertFalse("size=" + original.size(), original.isEmpty()); original.putValue("3", "3value"); assertEquals(3, original.size()); assertFalse("size=" + original.size(), original.isEmpty()); original.remove("B"); assertEquals(2, original.size()); assertFalse("size=" + original.size(), original.isEmpty()); original.remove("3"); assertEquals(1, original.size()); assertFalse("size=" + original.size(), original.isEmpty()); original.remove("a"); assertEquals(0, original.size()); assertTrue("size=" + original.size(), original.isEmpty()); }