Bug 5947: Increasing code coverage - mdsal-dom-inmemory-datastore
[mdsal.git] / dom / mdsal-dom-inmemory-datastore / src / test / java / org / opendaylight / mdsal / dom / store / inmemory / ShardSubmitCoordinationTaskTest.java
diff --git a/dom/mdsal-dom-inmemory-datastore/src/test/java/org/opendaylight/mdsal/dom/store/inmemory/ShardSubmitCoordinationTaskTest.java b/dom/mdsal-dom-inmemory-datastore/src/test/java/org/opendaylight/mdsal/dom/store/inmemory/ShardSubmitCoordinationTaskTest.java
new file mode 100644 (file)
index 0000000..28ca531
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.mdsal.dom.store.inmemory;
+
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.opendaylight.mdsal.dom.store.inmemory.TestUtils.DOM_DATA_TREE_IDENTIFIER;
+
+import java.lang.reflect.Field;
+import java.util.Collections;
+import org.junit.Test;
+
+public class ShardSubmitCoordinationTaskTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        ShardSubmitCoordinationTask shardSubmitCoordinationTask =
+                new ShardSubmitCoordinationTask(DOM_DATA_TREE_IDENTIFIER, Collections.EMPTY_SET);
+
+        final ShardCanCommitCoordinationTask canCommitCoordinationTask = mock(ShardCanCommitCoordinationTask.class);
+        doNothing().when(canCommitCoordinationTask).canCommitBlocking();
+        final ShardPreCommitCoordinationTask preCommitCoordinationTask = mock(ShardPreCommitCoordinationTask.class);
+        doNothing().when(preCommitCoordinationTask).preCommitBlocking();
+        final ShardCommitCoordinationTask commitCoordinationTask = mock(ShardCommitCoordinationTask.class);
+        doNothing().when(commitCoordinationTask).commitBlocking();
+
+        Field canCommitCoordinationTaskField =
+                ShardSubmitCoordinationTask.class.getDeclaredField("canCommitCoordinationTask");
+        Field preCommitCoordinationTaskField =
+                ShardSubmitCoordinationTask.class.getDeclaredField("preCommitCoordinationTask");
+        Field commitCoordinationTaskField =
+                ShardSubmitCoordinationTask.class.getDeclaredField("commitCoordinationTask");
+
+        canCommitCoordinationTaskField.setAccessible(true);
+        preCommitCoordinationTaskField.setAccessible(true);
+        commitCoordinationTaskField.setAccessible(true);
+
+        canCommitCoordinationTaskField.set(shardSubmitCoordinationTask, canCommitCoordinationTask);
+        preCommitCoordinationTaskField.set(shardSubmitCoordinationTask, preCommitCoordinationTask);
+        commitCoordinationTaskField.set(shardSubmitCoordinationTask, commitCoordinationTask);
+
+        shardSubmitCoordinationTask.call();
+
+        verify(canCommitCoordinationTask).canCommitBlocking();
+        verify(preCommitCoordinationTask).preCommitBlocking();
+        verify(commitCoordinationTask).commitBlocking();
+    }
+}
\ No newline at end of file