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