+++ /dev/null
-/*
- * 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.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.opendaylight.mdsal.dom.store.inmemory.TestUtils.DATA_TREE;
-import static org.opendaylight.mdsal.dom.store.inmemory.TestUtils.resetMocks;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.util.concurrent.MoreExecutors;
-import java.util.concurrent.ExecutionException;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
-
-public class InMemoryDOMDataTreeShardThreePhaseCommitCohortTest {
-
- private static final DataTreeCandidateTip DATA_TREE_CANDIDATE = mock(DataTreeCandidateTip.class);
- private static final DataTreeCandidateNode DATA_TREE_CANDIDATE_NODE = mock(DataTreeCandidateNode.class);
- private static final DataTreeModification DATA_TREE_MODIFICATION = mock(DataTreeModification.class);
- private static final InMemoryDOMDataTreeShardChangePublisher IN_MEMORY_DOM_DATA_TREE_SHARD_CHANGE_PUBLISHER =
- new InMemoryDOMDataTreeShardChangePublisher(MoreExecutors.directExecutor(), 1, DATA_TREE,
- YangInstanceIdentifier.of(QName.create("", "test")), ImmutableMap.of());
- private static final InMemoryDOMDataTreeShardThreePhaseCommitCohort
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT =
- new InMemoryDOMDataTreeShardThreePhaseCommitCohort(DATA_TREE, DATA_TREE_MODIFICATION,
- IN_MEMORY_DOM_DATA_TREE_SHARD_CHANGE_PUBLISHER);
-
- @Before
- public void setUp() throws Exception {
- doReturn(YangInstanceIdentifier.empty()).when(DATA_TREE_CANDIDATE).getRootPath();
- doReturn("testDataTreeCandidate").when(DATA_TREE_CANDIDATE).toString();
- doReturn(DATA_TREE_CANDIDATE_NODE).when(DATA_TREE_CANDIDATE).getRootNode();
- doReturn(DATA_TREE_CANDIDATE).when(DATA_TREE).prepare(any());
-
- doReturn(ModificationType.WRITE).when(DATA_TREE_CANDIDATE_NODE).getModificationType();
- doReturn(ImmutableSet.of()).when(DATA_TREE_CANDIDATE_NODE).getChildNodes();
-
- doNothing().when(DATA_TREE).validate(any());
- doNothing().when(DATA_TREE).commit(any());
-
- doReturn("testDataTreeModification").when(DATA_TREE_MODIFICATION).toString();
- }
-
- @Test
- public void basicTest() throws Exception {
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.canCommit();
- verify(DATA_TREE).validate(any());
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.preCommit();
- verify(DATA_TREE).prepare(any());
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.commit();
- verify(DATA_TREE).commit(any());
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.abort();
- }
-
- @Test(expected = IllegalStateException.class)
- public void abortWithExceptionTest() throws Exception {
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.abort();
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.commit();
- }
-
- @Test
- public void preCommitWithExceptionTest() throws Exception {
- doThrow(new RuntimeException("testException")).when(DATA_TREE).prepare(any());
- try {
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.preCommit().get();
- fail("Expected Exception");
- } catch (ExecutionException e) {
- assertTrue(e.getCause().getMessage().contains("testException"));
- }
- }
-
- @Test
- public void canCommitWithDataValidationFailedExceptionTest() throws Exception {
- doThrow(new DataValidationFailedException(YangInstanceIdentifier.empty(), "testException"))
- .when(DATA_TREE).validate(any());
- try {
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.canCommit().get();
- } catch (ExecutionException e) {
- assertTrue(e.getCause() instanceof TransactionCommitFailedException);
- }
- }
-
- @Test
- public void canCommitWithExceptionTest() throws Exception {
- doThrow(new RuntimeException("testException")).when(DATA_TREE).validate(any());
- try {
- IN_MEMORY_DOM_DATA_TREE_SHARD_THREE_PHASE_COMMIT_COHORT.canCommit().get();
- fail("Expected Exception");
- } catch (ExecutionException e) {
- assertTrue(e.getCause().getMessage().contains("testException"));
- }
- }
-
- @After
- public void reset() {
- resetMocks();
- }
-}
\ No newline at end of file