/** * Creates a document-based manifest. Package-private for testing. * * @param rootThread the root thread * @param anchor value representing the conversation anchor */ DocumentBasedManifest(ObservableManifestThread rootThread, ObservableStructuredValue<AnchorKey, String> anchor) { ObservableStructuredValue.Listener<AnchorKey, String> anchorListener = new ObservableStructuredValue.Listener<AnchorKey, String>() { @Override public void onValuesChanged(Map<AnchorKey, ? extends String> oldValues, Map<AnchorKey, ? extends String> newValues) { triggerOnAnchorChanged(oldValues, newValues); } @Override public void onDeleted() { // TODO(anorth): remove onDeleted from this interface. } }; this.rootThread = rootThread; this.anchor = anchor; this.anchor.addListener(anchorListener); }
public static <E> DocumentBasedAssignment create( DocumentEventRouter<? super E, E, ?> router, E container) { DocumentBasedAssignment assignment = new DocumentBasedAssignment( DocumentBasedStructuredValue.create(router, container, Serializer.STRING, Key.class)); assignment.value.addListener(assignment); return assignment; }
public void testDeletionProducesEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectDeletion(); context.delete(); }
public void testDeletionProducesEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectDeletion(); context.delete(); }
verify(anchorValue).addListener(anchorListener.capture());
verify(anchorValue).addListener(anchorListener.capture());
public void testSetSingleFromNullProducesEvent() { createEmptyTarget(); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, (Integer) null), CollectionUtils.immutableMap(Key.NAME1, 42)); value.set(Key.NAME1, 42); observer.checkExpectationsSatisfied(); }
public void testSetSingleFromNullProducesEvent() { createEmptyTarget(); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, (Integer) null), CollectionUtils.immutableMap(Key.NAME1, 42)); value.set(Key.NAME1, 42); observer.checkExpectationsSatisfied(); }
public void testSetNullProducesEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, 10), CollectionUtils.immutableMap(Key.NAME1, (Integer) null)); value.set(Key.NAME1, null); observer.checkExpectationsSatisfied(); }
public void testSetNullProducesEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, 10), CollectionUtils.immutableMap(Key.NAME1, (Integer) null)); value.set(Key.NAME1, null); observer.checkExpectationsSatisfied(); }
public void testSetManyProducesOneEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20), CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); value.set(CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); observer.checkExpectationsSatisfied(); }
public void testRemoteSetManyProducesOneEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20), CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); setValues(CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); observer.checkExpectationsSatisfied(); }
public void testRemoteSetManyProducesOneEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20), CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); setValues(CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); observer.checkExpectationsSatisfied(); }
public void testSetManyProducesOneEvent() { createTargetOn(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20)); MockStructuredValueObserver observer = new MockStructuredValueObserver(); value.addListener(observer); observer.expectValuesChanged(CollectionUtils.immutableMap(Key.NAME1, 10, Key.NAME2, 20), CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); value.set(CollectionUtils.immutableMap(Key.NAME1, 5, Key.NAME2, 7)); observer.checkExpectationsSatisfied(); }