7d496568c6fe74dc115c2327a76d3f4f275d6d57
[controller.git] / opendaylight / md-sal / sal-inmemory-datastore / src / test / java / org / opendaylight / controller / md / sal / dom / store / impl / RootScopeSubtreeTest.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.controller.md.sal.dom.store.impl;
9
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;
14
15 public class RootScopeSubtreeTest extends DefaultDataChangeListenerTestSuite {
16
17     @Override
18     protected void customizeTask(final DatastoreTestTask task) {
19         task.changeListener(TOP_LEVEL, DataChangeScope.SUBTREE);
20     }
21
22     @Override
23     public void putTopLevelOneNested(final DatastoreTestTask task) throws Exception {
24         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
25
26         assertContains(change.getCreatedData(), TOP_LEVEL, path(FOO), path(FOO, BAR));
27         assertEmpty(change.getUpdatedData());
28         assertEmpty(change.getRemovedPaths());
29     }
30
31     @Override
32     public void replaceTopLevelNestedChanged(final DatastoreTestTask task) throws Exception {
33
34         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
35
36         assertContains(change.getCreatedData(), path(FOO, BAZ));
37         assertContains(change.getUpdatedData(), TOP_LEVEL, path(FOO));
38         assertContains(change.getRemovedPaths(), path(FOO, BAR));
39     }
40
41     @Override
42     protected void putTopLevelWithTwoNested(final DatastoreTestTask task) throws Exception {
43
44         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
45
46         assertContains(change.getCreatedData(), TOP_LEVEL, path(FOO), path(FOO, BAR), path(FOO, BAZ));
47         assertEmpty(change.getUpdatedData());
48         assertEmpty(change.getRemovedPaths());
49     }
50
51     @Override
52     protected void twoNestedExistsOneIsDeleted(final DatastoreTestTask task) throws Exception {
53
54         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
55
56         assertEmpty(change.getCreatedData());
57         assertContains(change.getUpdatedData(), TOP_LEVEL, path(FOO));
58         assertContains(change.getRemovedPaths(), path(FOO, BAZ));
59     }
60
61     @Override
62     protected void nestedListExistsRootDeleted(final DatastoreTestTask task) throws Exception {
63
64         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
65
66         assertEmpty(change.getCreatedData());
67         assertEmpty(change.getUpdatedData());
68         assertContains(change.getRemovedPaths(), TOP_LEVEL, path(FOO), path(FOO, BAR), path(FOO, BAZ));
69     }
70
71     @Override
72     protected void existingOneNestedWriteAdditionalNested(final DatastoreTestTask task) throws Exception {
73         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
74
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());
79     }
80
81     @Override
82     protected void existingTopWriteTwoNested(final DatastoreTestTask task) throws Exception {
83         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
84
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());
89     }
90
91     @Override
92     protected void existingTopWriteSibling(final DatastoreTestTask task) throws Exception {
93         AsyncDataChangeEvent<YangInstanceIdentifier, NormalizedNode<?, ?>> change = task.getChangeEvent();
94
95         assertContains(change.getCreatedData(), path(FOO_SIBLING));
96         assertContains(change.getUpdatedData(), TOP_LEVEL);
97         assertNotContains(change.getUpdatedData(), path(FOO));
98         assertEmpty(change.getRemovedPaths());
99     }
100 }