@Override public Map<String, String> toMap() { final Map<String, String> result = new HashMap<>(size()); for (int i = 0; i < size(); i++) { final Object value = getValueAt(i); result.put(getKeyAt(i), value == null ? null : String.valueOf(value)); } return result; }
@Override public void accept(final String key, final String value) { assertEquals("key", key, original.getKeyAt(count)); assertEquals("val", value, original.getValueAt(count)); count++; assertTrue("count should not exceed size but was " + count, count <= original.size()); } });
@Override public void accept(final String key, final String value, final State state) { assertEquals("key", key, state.data.getKeyAt(state.count)); assertEquals("val", value, state.data.getValueAt(state.count)); state.count++; assertTrue("count should not exceed size but was " + state.count, state.count <= state.data.size()); } };
@Test public void testGetValueAt() throws Exception { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("a", "avalue"); assertEquals("a", original.getKeyAt(0)); assertEquals("avalue", original.getValueAt(0)); original.putValue("B", "Bvalue"); assertEquals("B", original.getKeyAt(0)); assertEquals("Bvalue", original.getValueAt(0)); assertEquals("a", original.getKeyAt(1)); assertEquals("avalue", original.getValueAt(1)); original.putValue("3", "3value"); assertEquals("3", original.getKeyAt(0)); assertEquals("3value", original.getValueAt(0)); assertEquals("B", original.getKeyAt(1)); assertEquals("Bvalue", original.getValueAt(1)); assertEquals("a", original.getKeyAt(2)); assertEquals("avalue", original.getValueAt(2)); }
@Test public void testGetValue_GetValueAt() throws Exception { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("a", "avalue"); original.putValue("B", "Bvalue"); original.putValue("3", "3value"); assertEquals("avalue", original.getValue("a")); assertEquals("avalue", original.getValueAt(2)); assertEquals("Bvalue", original.getValue("B")); assertEquals("Bvalue", original.getValueAt(1)); assertEquals("3value", original.getValue("3")); assertEquals("3value", original.getValueAt(0)); original.putValue("0", "0value"); assertEquals("0value", original.getValue("0")); assertEquals("0value", original.getValueAt(0)); assertEquals("3value", original.getValue("3")); assertEquals("3value", original.getValueAt(1)); assertEquals("Bvalue", original.getValue("B")); assertEquals("Bvalue", original.getValueAt(2)); assertEquals("avalue", original.getValue("a")); assertEquals("avalue", original.getValueAt(3)); }
@Test public void testPutInsertsInAlphabeticOrder() throws Exception { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("a", "avalue"); original.putValue("B", "Bvalue"); original.putValue("3", "3value"); original.putValue("c", "cvalue"); original.putValue("d", "dvalue"); assertEquals("avalue", original.getValue("a")); assertEquals("avalue", original.getValueAt(2)); assertEquals("Bvalue", original.getValue("B")); assertEquals("Bvalue", original.getValueAt(1)); assertEquals("3value", original.getValue("3")); assertEquals("3value", original.getValueAt(0)); assertEquals("cvalue", original.getValue("c")); assertEquals("cvalue", original.getValueAt(3)); assertEquals("dvalue", original.getValue("d")); assertEquals("dvalue", original.getValueAt(4)); }
@Test public void testPutValueInsertsInAlphabeticOrder() throws Exception { final SortedArrayStringMap original = new SortedArrayStringMap(); original.putValue("a", "avalue"); original.putValue("B", "Bvalue"); original.putValue("3", "3value"); original.putValue("c", "cvalue"); original.putValue("d", "dvalue"); assertEquals("avalue", original.getValue("a")); assertEquals("avalue", original.getValueAt(2)); assertEquals("Bvalue", original.getValue("B")); assertEquals("Bvalue", original.getValueAt(1)); assertEquals("3value", original.getValue("3")); assertEquals("3value", original.getValueAt(0)); assertEquals("cvalue", original.getValue("c")); assertEquals("cvalue", original.getValueAt(3)); assertEquals("dvalue", original.getValue("d")); assertEquals("dvalue", original.getValueAt(4)); }
@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]); } }
@Override public Map<String, String> toMap() { final Map<String, String> result = new HashMap<>(size()); for (int i = 0; i < size(); i++) { final Object value = getValueAt(i); result.put(getKeyAt(i), value == null ? null : String.valueOf(value)); } return result; }