2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.mdsal.dom.store.inmemory;
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;
15 import java.lang.reflect.Field;
16 import java.util.Collections;
17 import org.junit.Test;
19 public class ShardSubmitCoordinationTaskTest {
22 public void basicTest() throws Exception {
23 ShardSubmitCoordinationTask shardSubmitCoordinationTask =
24 new ShardSubmitCoordinationTask(DOM_DATA_TREE_IDENTIFIER, Collections.EMPTY_SET);
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();
33 Field canCommitCoordinationTaskField =
34 ShardSubmitCoordinationTask.class.getDeclaredField("canCommitCoordinationTask");
35 Field preCommitCoordinationTaskField =
36 ShardSubmitCoordinationTask.class.getDeclaredField("preCommitCoordinationTask");
37 Field commitCoordinationTaskField =
38 ShardSubmitCoordinationTask.class.getDeclaredField("commitCoordinationTask");
40 canCommitCoordinationTaskField.setAccessible(true);
41 preCommitCoordinationTaskField.setAccessible(true);
42 commitCoordinationTaskField.setAccessible(true);
44 canCommitCoordinationTaskField.set(shardSubmitCoordinationTask, canCommitCoordinationTask);
45 preCommitCoordinationTaskField.set(shardSubmitCoordinationTask, preCommitCoordinationTask);
46 commitCoordinationTaskField.set(shardSubmitCoordinationTask, commitCoordinationTask);
48 shardSubmitCoordinationTask.call();
50 verify(canCommitCoordinationTask).canCommitBlocking();
51 verify(preCommitCoordinationTask).preCommitBlocking();
52 verify(commitCoordinationTask).commitBlocking();