2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.dom.store.impl;
10 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
11 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
12 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
13 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
15 public class RootScopeSubtreeTest extends DefaultDataChangeListenerTestSuite {
18 protected void customizeTask(final DatastoreTestTask task) {
19 task.changeListener(TOP_LEVEL, DataChangeScope.SUBTREE);
23 public void putTopLevelOneNested(final DatastoreTestTask task) throws Exception {
24 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
26 assertContains(change.getCreatedData(), TOP_LEVEL, path(FOO), path(FOO, BAR));
27 assertEmpty(change.getUpdatedData());
28 assertEmpty(change.getRemovedPaths());
32 public void replaceTopLevelNestedChanged(final DatastoreTestTask task) throws Exception {
34 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
36 assertContains(change.getCreatedData(), path(FOO, BAZ));
37 assertContains(change.getUpdatedData(), TOP_LEVEL, path(FOO));
38 assertContains(change.getRemovedPaths(), path(FOO, BAR));
42 protected void putTopLevelWithTwoNested(final DatastoreTestTask task) throws Exception {
44 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
46 assertContains(change.getCreatedData(), TOP_LEVEL, path(FOO), path(FOO, BAR), path(FOO, BAZ));
47 assertEmpty(change.getUpdatedData());
48 assertEmpty(change.getRemovedPaths());
52 protected void twoNestedExistsOneIsDeleted(final DatastoreTestTask task) throws Exception {
54 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
56 assertEmpty(change.getCreatedData());
57 assertContains(change.getUpdatedData(), TOP_LEVEL, path(FOO));
58 assertContains(change.getRemovedPaths(), path(FOO, BAZ));
62 protected void nestedListExistsRootDeleted(final DatastoreTestTask task) throws Exception {
64 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
66 assertEmpty(change.getCreatedData());
67 assertEmpty(change.getUpdatedData());
68 assertContains(change.getRemovedPaths(), TOP_LEVEL, path(FOO), path(FOO, BAR), path(FOO, BAZ));
72 protected void existingOneNestedWriteAdditionalNested(final DatastoreTestTask task) throws Exception {
73 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
75 assertContains(change.getCreatedData(), path(FOO,BAZ));
76 assertNotContains(change.getCreatedData(), path(FOO,BAR));
77 assertContains(change.getUpdatedData(), TOP_LEVEL, path(FOO));
78 assertEmpty(change.getRemovedPaths());
82 protected void existingTopWriteTwoNested(final DatastoreTestTask task) throws Exception {
83 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
85 assertContains(change.getCreatedData(), path(FOO,BAR),path(FOO,BAZ));
86 assertContains(change.getUpdatedData(), TOP_LEVEL, path(FOO));
87 assertNotContains(change.getUpdatedData(), path(FOO,BAR));
88 assertEmpty(change.getRemovedPaths());
92 protected void existingTopWriteSibling(final DatastoreTestTask task) throws Exception {
93 AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
95 assertContains(change.getCreatedData(), path(FOO_SIBLING));
96 assertContains(change.getUpdatedData(), TOP_LEVEL);
97 assertNotContains(change.getUpdatedData(), path(FOO));
98 assertEmpty(change.getRemovedPaths());