public void testPutOfAGreaterValueReplacesOld() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); getTarget().put(KEY1, 30); assertEquals(new Integer(30), getTarget().get(KEY1)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 30) .add(KEY2, 20)); }
/** * Populates a document with an initial map state defined by an entry list. * * @return a map-context view of the document state. */ private static <N, E extends N> ValueContext<N, E> substrate( ObservableMutableDocument<N, E, ?> doc, ListBuilder<String, Integer> values) { // Insert container element E container = doc.createChildElement(doc.getDocumentElement(), CONTAINER_TAG, Collections.<String,String>emptyMap()); // Insert entries for (Entry<String, Integer> e : values.build()) { Map<String, String> attrs = new HashMap<String, String>(); attrs.put(KEY_ATTR, e.key); attrs.put(VALUE_ATTR, Serializer.INTEGER.toString(e.value)); doc.createChildElement(container, ENTRY_TAG, new AttributesImpl(attrs)); } return new ValueContext<N, E>(doc, container); }
/** * Populates a document with an initial map state defined by an entry list. * * @return a map-context view of the document state. */ private static <N, E extends N> ValueContext<N, E> substrate( ObservableMutableDocument<N, E, ?> doc, ListBuilder<String, Integer> values) { // Insert container element E container = doc.createChildElement(doc.getDocumentElement(), CONTAINER_TAG, Collections.<String,String>emptyMap()); // Insert entries for (Entry<String, Integer> e : values.build()) { Map<String, String> attrs = new HashMap<String, String>(); attrs.put(KEY_ATTR, e.key); attrs.put(VALUE_ATTR, Serializer.INTEGER.toString(e.value)); doc.createChildElement(container, ENTRY_TAG, new AttributesImpl(attrs)); } return new ValueContext<N, E>(doc, container); }
public void testRemoteAddedGreaterEntriesObviateOldEntry() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); // Add an entry remotely. addEntry(KEY1, 30); assertEquals(new Integer(30), getTarget().get(KEY1)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20) .add(KEY1, 30)); // Mutate locally, expect cleanup getTarget().put(KEY1, 50); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 50) .add(KEY2, 20)); }
public void testRemoteAddedGreaterEntriesObviateOldEntry() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); // Add an entry remotely. addEntry(KEY1, 30); assertEquals(new Integer(30), getTarget().get(KEY1)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20) .add(KEY1, 30)); // Mutate locally, expect cleanup getTarget().put(KEY1, 50); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 50) .add(KEY2, 20)); }
public void testRemoteAddedLesserEntriesGetScheduledForRemoval() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 30) .add(KEY2, 20)); // Add an entry remotely. addEntry(KEY1, 10); assertEquals(new Integer(30), getTarget().get(KEY1)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 30) .add(KEY2, 20) .add(KEY1, 10)); getTarget().put(KEY2, 50); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY2, 50) .add(KEY1, 30)); }
public void testRemoteAddedLesserEntriesGetScheduledForRemoval() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 30) .add(KEY2, 20)); // Add an entry remotely. addEntry(KEY1, 10); assertEquals(new Integer(30), getTarget().get(KEY1)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 30) .add(KEY2, 20) .add(KEY1, 10)); getTarget().put(KEY2, 50); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY2, 50) .add(KEY1, 30)); }
public void testLoadLeavesOverridenEntriesInSubstrateButCleansOnWrite() { createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20) .add(KEY1, 30)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20) .add(KEY1, 30)); getTarget().put(KEY2, 50); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY2, 50) .add(KEY1, 30)); }
@Override public void onEntrySet(K key, C oldValue, C newValue) { entries.add(key, newValue); }
public void testPutOfAnEqualValueDoesNothing() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); getTarget().put(KEY2, 20); // If the substrate were to have been rewritten, we'd expect to find KEY2 at // the start of the document as a newly written entry. Therefore, we test // that it remains at its old location. assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); }
public void testLoadLeavesOverridenEntriesInSubstrateButCleansOnWrite() { createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20) .add(KEY1, 30)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20) .add(KEY1, 30)); getTarget().put(KEY2, 50); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY2, 50) .add(KEY1, 30)); }
public void testPutOfAnEqualValueDoesNothing() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); getTarget().put(KEY2, 20); // If the substrate were to have been rewritten, we'd expect to find KEY2 at // the start of the document as a newly written entry. Therefore, we test // that it remains at its old location. assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); }
public void testReplacementEntryTriggersSingleEvent() { createEmptyMap(); getTarget().put(KEY1, 10); MockListener<String, Integer> listener = new MockListener<String, Integer>(); getTarget().addListener(listener); getTarget().put(KEY1, 20); List<Entry<String, Integer>> receivedEntries = listener.getEntries().build(); assertEquals(1, receivedEntries.size()); }
/** * Creates an empty map as the test target. */ private void createEmptyMap() { createTargetOn(new ListBuilder<String, Integer>()); }
public void testPutOnEmptyMapInsertsIntoSubstrate() { createEmptyMap(); getTarget().put(KEY1, 10); assertSubstrateEquals(new ListBuilder<String, Integer>().add(KEY1, 10)); }
public void testRemovePutWithLesserValues() { // Set up the target with some initial state. createTargetOn(new ListBuilder<String, Integer>() .add(KEY1, 10) .add(KEY2, 20)); getTarget().remove(KEY1); getTarget().put(KEY1, 5); assertEquals(new Integer(5), getTarget().get(KEY1)); assertSubstrateEquals(new ListBuilder<String, Integer>() .add(KEY1, 5) .add(KEY2, 20)); }
@Override public void onEntrySet(K key, C oldValue, C newValue) { entries.add(key, newValue); }
public void testPutOfNewEntryTriggersEvent() { createEmptyMap(); MockListener<String, Integer> listener = new MockListener<String, Integer>(); getTarget().addListener(listener); getTarget().put(KEY1, 10); List<Entry<String, Integer>> receivedEntries = listener.getEntries().build(); assertEquals(1, receivedEntries.size()); }
public void testPutOfNewEntryTriggersEvent() { createEmptyMap(); MockListener<String, Integer> listener = new MockListener<String, Integer>(); getTarget().addListener(listener); getTarget().put(KEY1, 10); List<Entry<String, Integer>> receivedEntries = listener.getEntries().build(); assertEquals(1, receivedEntries.size()); }
/** * Creates an empty map as the test target. */ private void createEmptyMap() { createTargetOn(new ListBuilder<String, Integer>()); }