From 17e5ffafca1a00544c15e134a8f3fb8b928e5d97 Mon Sep 17 00:00:00 2001 From: Peter Nosal Date: Mon, 19 Sep 2016 09:47:14 +0200 Subject: [PATCH] Bug 5947: additional tests for dom-broker and inmemory-datastore #4 Change-Id: I43af7e4dae33e8d7a5fd9c8c4c58afe747f3f7c3 Signed-off-by: Peter Nosal --- ...tDOMForwardedCompositeTransactionTest.java | 43 +++++++++++++++++++ .../InMemoryDOMDataStoreFactoryTest.java | 6 ++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDOMForwardedCompositeTransactionTest.java diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDOMForwardedCompositeTransactionTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDOMForwardedCompositeTransactionTest.java new file mode 100644 index 0000000000..0cc86cda83 --- /dev/null +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDOMForwardedCompositeTransactionTest.java @@ -0,0 +1,43 @@ +/* + * 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.broker; + +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; + +import com.google.common.collect.ImmutableMap; +import java.util.Map; +import org.junit.Test; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransaction; + +public class AbstractDOMForwardedCompositeTransactionTest { + + private static final DOMStoreTransaction FAIL_TX1 = mock(DOMStoreTransaction.class); + private static final DOMStoreTransaction FAIL_TX2 = mock(DOMStoreTransaction.class); + + @Test(expected = IllegalStateException.class) + public void closeSubtransactionsTest() throws Exception { + doThrow(UnsupportedOperationException.class).when(FAIL_TX1).close(); + doThrow(UnsupportedOperationException.class).when(FAIL_TX2).close(); + + final AbstractDOMForwardedCompositeTransaction domForwardedCompositeTransaction = + new DOMForwardedCompositeTransactionTestImpl("testIdent", + ImmutableMap.of("testKey1", FAIL_TX1, "testKey2", FAIL_TX2)); + + domForwardedCompositeTransaction.closeSubtransactions(); + } + + private class DOMForwardedCompositeTransactionTestImpl + extends AbstractDOMForwardedCompositeTransaction { + + private DOMForwardedCompositeTransactionTestImpl(Object identifier, + Map backingTxs) { + super(identifier, backingTxs); + } + } +} \ No newline at end of file diff --git a/dom/mdsal-dom-inmemory-datastore/src/test/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStoreFactoryTest.java b/dom/mdsal-dom-inmemory-datastore/src/test/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStoreFactoryTest.java index e2fc19d11a..2cfae2198c 100644 --- a/dom/mdsal-dom-inmemory-datastore/src/test/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStoreFactoryTest.java +++ b/dom/mdsal-dom-inmemory-datastore/src/test/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStoreFactoryTest.java @@ -10,8 +10,10 @@ package org.opendaylight.mdsal.dom.store.inmemory; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.Matchers.any; +import static org.mockito.Mockito.atLeast; 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; @@ -45,6 +47,8 @@ public class InMemoryDOMDataStoreFactoryTest { doNothing().when(autoCloseable).close(); inMemoryDOMDataStore.setCloseable(autoCloseable); inMemoryDOMDataStore.close(); - verify(autoCloseable).close(); + doThrow(UnsupportedOperationException.class).when(autoCloseable).close(); + inMemoryDOMDataStore.close(); + verify(autoCloseable, atLeast(2)).close(); } } \ No newline at end of file -- 2.36.6