f83a0d579b788bc609748ad9b8247aa26b836ff2
[mdsal.git] / dom / mdsal-dom-spi / src / test / java / org / opendaylight / mdsal / dom / spi / shard / DelegatingWriteCursorStrategyTest.java
1 /*
2  * Copyright (c) 2016 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.mdsal.dom.spi.shard;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.mockito.Mockito.doNothing;
12 import static org.mockito.Mockito.doReturn;
13 import static org.mockito.Mockito.times;
14 import static org.mockito.Mockito.verify;
15
16 import com.google.common.collect.ImmutableList;
17 import org.junit.After;
18 import org.junit.Test;
19 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteCursor;
20
21 public class DelegatingWriteCursorStrategyTest extends DelegatingWriteCursorStrategy {
22
23     @Test
24     public void basicTest() throws Exception {
25         doReturn("TestPathArgument").when(TestUtils.PATH_ARGUMENT).toString();
26         assertEquals(this, this.childStrategy());
27
28         doNothing().when(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).enter(TestUtils.PATH_ARGUMENT);
29         this.enter(TestUtils.PATH_ARGUMENT);
30         verify(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).enter(TestUtils.PATH_ARGUMENT);
31
32         doNothing().when(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).delete(TestUtils.PATH_ARGUMENT);
33         this.delete(TestUtils.PATH_ARGUMENT);
34         verify(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).delete(TestUtils.PATH_ARGUMENT);
35
36         doNothing().when(TestUtils.DOM_DATA_TREE_WRITE_CURSOR)
37                 .merge(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
38         this.merge(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
39         verify(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).merge(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
40
41         doReturn(ImmutableList.of(TestUtils.NORMALIZED_NODE)).when(TestUtils.NORMALIZED_NODE_CONTAINER).getValue();
42         doReturn(TestUtils.PATH_ARGUMENT).when(TestUtils.NORMALIZED_NODE).getIdentifier();
43         this.mergeToCurrent(TestUtils.NORMALIZED_NODE_CONTAINER);
44         verify(TestUtils.DOM_DATA_TREE_WRITE_CURSOR, times(2))
45                 .merge(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
46
47         doNothing().when(TestUtils.DOM_DATA_TREE_WRITE_CURSOR)
48                 .write(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
49         this.write(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
50         verify(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).write(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
51
52         this.writeToCurrent(TestUtils.NORMALIZED_NODE_CONTAINER);
53         verify(TestUtils.DOM_DATA_TREE_WRITE_CURSOR, times(2))
54                 .write(TestUtils.PATH_ARGUMENT, TestUtils.NORMALIZED_NODE);
55
56         doNothing().when(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).exit();
57         this.exit();
58         verify(TestUtils.DOM_DATA_TREE_WRITE_CURSOR).exit();
59     }
60
61     @Override
62     protected DOMDataTreeWriteCursor delegate() {
63         return TestUtils.DOM_DATA_TREE_WRITE_CURSOR;
64     }
65
66     @After
67     public void reset() {
68         TestUtils.resetMocks();
69     }
70 }