28ca53100ae6cdafbdc42ab9927b2b36fa1692a0
[mdsal.git] / dom / mdsal-dom-inmemory-datastore / src / test / java / org / opendaylight / mdsal / dom / store / inmemory / ShardSubmitCoordinationTaskTest.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.mockito.Mockito.doNothing;
11 import static org.mockito.Mockito.mock;
12 import static org.mockito.Mockito.verify;
13 import static org.opendaylight.mdsal.dom.store.inmemory.TestUtils.DOM_DATA_TREE_IDENTIFIER;
14
15 import java.lang.reflect.Field;
16 import java.util.Collections;
17 import org.junit.Test;
18
19 public class ShardSubmitCoordinationTaskTest {
20
21     @Test
22     public void basicTest() throws Exception {
23         ShardSubmitCoordinationTask shardSubmitCoordinationTask =
24                 new ShardSubmitCoordinationTask(DOM_DATA_TREE_IDENTIFIER, Collections.EMPTY_SET);
25
26         final ShardCanCommitCoordinationTask canCommitCoordinationTask = mock(ShardCanCommitCoordinationTask.class);
27         doNothing().when(canCommitCoordinationTask).canCommitBlocking();
28         final ShardPreCommitCoordinationTask preCommitCoordinationTask = mock(ShardPreCommitCoordinationTask.class);
29         doNothing().when(preCommitCoordinationTask).preCommitBlocking();
30         final ShardCommitCoordinationTask commitCoordinationTask = mock(ShardCommitCoordinationTask.class);
31         doNothing().when(commitCoordinationTask).commitBlocking();
32
33         Field canCommitCoordinationTaskField =
34                 ShardSubmitCoordinationTask.class.getDeclaredField("canCommitCoordinationTask");
35         Field preCommitCoordinationTaskField =
36                 ShardSubmitCoordinationTask.class.getDeclaredField("preCommitCoordinationTask");
37         Field commitCoordinationTaskField =
38                 ShardSubmitCoordinationTask.class.getDeclaredField("commitCoordinationTask");
39
40         canCommitCoordinationTaskField.setAccessible(true);
41         preCommitCoordinationTaskField.setAccessible(true);
42         commitCoordinationTaskField.setAccessible(true);
43
44         canCommitCoordinationTaskField.set(shardSubmitCoordinationTask, canCommitCoordinationTask);
45         preCommitCoordinationTaskField.set(shardSubmitCoordinationTask, preCommitCoordinationTask);
46         commitCoordinationTaskField.set(shardSubmitCoordinationTask, commitCoordinationTask);
47
48         shardSubmitCoordinationTask.call();
49
50         verify(canCommitCoordinationTask).canCommitBlocking();
51         verify(preCommitCoordinationTask).preCommitBlocking();
52         verify(commitCoordinationTask).commitBlocking();
53     }
54 }