verifyModification(barDeleteEvent.getRootNode(), BAR_ARGUMENT, ModificationType.DELETE);
}
+ @Test
+ public void testWildcardedListListenerWithPreexistingData() throws Exception {
+ putTx(TOP_PATH, TOP_INITIAL_DATA).submit().get();
+
+ final EventCapturingListener<TopLevelList> listener = new EventCapturingListener<>();
+ final DataTreeIdentifier<TopLevelList> wildcard = DataTreeIdentifier.create(
+ LogicalDatastoreType.OPERATIONAL, TOP_PATH.child(TopLevelList.class));
+ dataBrokerImpl.registerDataTreeChangeListener(wildcard, listener);
+
+ final DataTreeModification<TopLevelList> fooWriteEvent = Iterables.getOnlyElement(listener.nextEvent());
+ assertEquals(FOO_PATH, fooWriteEvent.getRootPath().getRootIdentifier());
+ verifyModification(fooWriteEvent.getRootNode(), FOO_ARGUMENT, ModificationType.WRITE);
+ }
+
private void createAndVerifyTop(final EventCapturingListener<Top> listener) throws Exception {
putTx(TOP_PATH,TOP_INITIAL_DATA).submit().get();
final Collection<DataTreeModification<Top>> events = listener.nextEvent();
"DataTreeChangeListenerQueueMgr");
}
+ private InMemoryDOMStoreTreeChangePublisher(QueuedNotificationManager<
+ AbstractDOMDataTreeChangeListenerRegistration<?>, DataTreeCandidate> notificationManager) {
+ this.notificationManager = notificationManager;
+ }
+
@Override
protected void notifyListener(AbstractDOMDataTreeChangeListenerRegistration<?> registration,
Collection<DataTreeCandidate> changes) {
final YangInstanceIdentifier treeId, final L listener, final DataTreeSnapshot snapshot) {
final AbstractDOMDataTreeChangeListenerRegistration<L> reg = registerTreeChangeListener(treeId, listener);
- final Optional<NormalizedNode<?, ?>> node = snapshot.readNode(treeId);
+ final Optional<NormalizedNode<?, ?>> node = snapshot.readNode(YangInstanceIdentifier.EMPTY);
if (node.isPresent()) {
- final DataTreeCandidate candidate = DataTreeCandidates.fromNormalizedNode(treeId, node.get());
- notificationManager.submitNotification(reg, candidate);
+ final DataTreeCandidate candidate = DataTreeCandidates.fromNormalizedNode(
+ YangInstanceIdentifier.EMPTY, node.get());
+
+ InMemoryDOMStoreTreeChangePublisher publisher =
+ new InMemoryDOMStoreTreeChangePublisher(notificationManager);
+ publisher.registerTreeChangeListener(treeId, listener);
+ publisher.publishChange(candidate);
}
return reg;