From 21c73f7e496e08b1fd3ba98be6bfd1b760aed7f1 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 8 Oct 2018 19:29:20 +0200 Subject: [PATCH] Fixup null warnings reported by eclipse JDT annotations are flushing out some lazyness in tests, fix that up by throwing UnsupportedOperationExceptions and proper mocking in most places. Change-Id: I2374a368e4a361c0e58d61e4b563f98036b4c540 Signed-off-by: Robert Varga --- .../adapter/BindingDOMAdapterLoaderTest.java | 18 +++++---- ...BindingDOMTransactionChainAdapterTest.java | 15 +++++--- .../codec/api/BindingNormalizedNodeCodec.java | 2 +- .../dom/codec/impl/NonCachingCodecTest.java | 38 +++++++++++++------ .../LeafrefTypeWithNullToStringInXpath.java | 4 +- .../yang/types/LeafrefTypeWithNullXpath.java | 4 +- .../yang/types/TestIntegerTypeDefinition.java | 2 +- .../yang/types/TestLeafSchemaNode.java | 4 +- .../ShardedDOMReadTransactionAdapterTest.java | 7 ++-- .../shard/WriteableNodeWithSubshardTest.java | 2 +- .../WriteableSubshardBoundaryNodeTest.java | 4 +- 11 files changed, 63 insertions(+), 37 deletions(-) diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java index e346ff6e3b..8d897453b3 100644 --- a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java @@ -11,18 +11,22 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.doReturn; -import static org.mockito.MockitoAnnotations.initMocks; +import static org.mockito.Mockito.mock; import com.google.common.collect.ImmutableClassToInstanceMap; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.TransactionChainListener; import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry; import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy; import org.opendaylight.mdsal.dom.api.DOMDataBroker; import org.opendaylight.mdsal.dom.api.DOMService; +@RunWith(MockitoJUnitRunner.StrictStubs.class) public class BindingDOMAdapterLoaderTest { @Mock @@ -35,9 +39,7 @@ public class BindingDOMAdapterLoaderTest { private BindingDOMDataBrokerAdapter bindingDOMDataBrokerAdapter; @Before - public void setUp() throws Exception { - initMocks(this); - + public void setUp() { doReturn(ImmutableClassToInstanceMap.of()).when(domService).getExtensions(); bindingDOMAdapterLoader = new BindingDOMAdapterLoader( new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(), @@ -50,21 +52,21 @@ public class BindingDOMAdapterLoaderTest { } @Test - public void createBuilderTest() throws Exception { + public void createBuilderTest() { assertTrue(bindingDOMAdapterLoader.load(DataBroker.class).get() instanceof BindingDOMDataBrokerAdapter); domService = null; assertFalse(bindingDOMAdapterLoader.load(DataBroker.class).isPresent()); } @Test - public void createChainTest() throws Exception { + public void createChainTest() { bindingDOMDataBrokerAdapter = (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get(); - assertNotNull(bindingDOMDataBrokerAdapter.createTransactionChain(null)); + assertNotNull(bindingDOMDataBrokerAdapter.createTransactionChain(mock(TransactionChainListener.class))); } @Test(expected = UnsupportedOperationException.class) - public void registerWithException() throws Exception { + public void registerWithException() { bindingDOMDataBrokerAdapter = (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get(); bindingDOMDataBrokerAdapter.registerDataTreeChangeListener(null, null); diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMTransactionChainAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMTransactionChainAdapterTest.java index 75fd08ed27..666ba79678 100644 --- a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMTransactionChainAdapterTest.java +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMTransactionChainAdapterTest.java @@ -13,13 +13,15 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.collect.ImmutableClassToInstanceMap; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.TransactionChainListener; import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry; import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy; import org.opendaylight.mdsal.dom.api.DOMDataBroker; @@ -28,6 +30,7 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMService; import org.opendaylight.mdsal.dom.api.DOMTransactionChain; +@RunWith(MockitoJUnitRunner.StrictStubs.class) public class BindingDOMTransactionChainAdapterTest { @Mock @@ -36,14 +39,16 @@ public class BindingDOMTransactionChainAdapterTest { @Mock private DOMTransactionChain transactionChain; + @Mock + private TransactionChainListener transactionChainListener; + @Mock private BindingNormalizedNodeCodecRegistry mockCodecRegistry; private BindingDOMTransactionChainAdapter bindingDOMTransactionChainAdapter; @Before - public void setUp() throws Exception { - initMocks(this); + public void setUp() { doReturn(transactionChain).when(domService).createTransactionChain(any()); doReturn(ImmutableClassToInstanceMap.of()).when(domService).getExtensions(); @@ -58,8 +63,8 @@ public class BindingDOMTransactionChainAdapterTest { BindingDOMDataBrokerAdapter bindingDOMDataBrokerAdapter = (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get(); - bindingDOMTransactionChainAdapter = - (BindingDOMTransactionChainAdapter) bindingDOMDataBrokerAdapter.createTransactionChain(null); + bindingDOMTransactionChainAdapter = (BindingDOMTransactionChainAdapter) bindingDOMDataBrokerAdapter + .createTransactionChain(transactionChainListener); assertNotNull(bindingDOMTransactionChainAdapter.getDelegate()); doNothing().when(transactionChain).close(); bindingDOMTransactionChainAdapter.close(); diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeCodec.java index 9215b5ade8..ffb50d3e0b 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeCodec.java @@ -35,5 +35,5 @@ public interface BindingNormalizedNodeCodec { * @param data Binding representation of data * @return Normalized Node representation of data */ - @NonNull NormalizedNode serialize(@NonNull T data); + @NonNull NormalizedNode serialize(@NonNull T data); } diff --git a/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/NonCachingCodecTest.java b/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/NonCachingCodecTest.java index 952bb784f3..1c740bc16c 100644 --- a/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/NonCachingCodecTest.java +++ b/binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/NonCachingCodecTest.java @@ -8,23 +8,39 @@ package org.opendaylight.mdsal.binding.dom.codec.impl; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeCodec; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +@RunWith(MockitoJUnitRunner.StrictStubs.class) public class NonCachingCodecTest { + @Mock + private BindingNormalizedNodeCodec codec; + @Mock + private NormalizedNode node; + @Mock + private DataObject object; + + @Before + public void before() { + doReturn(node).when(codec).serialize(object); + doReturn(object).when(codec).deserialize(node); + } @Test - public void basicTest() throws Exception { - final BindingNormalizedNodeCodec codec = mock(BindingNormalizedNodeCodec.class); - doReturn(null).when(codec).serialize(null); - doReturn(null).when(codec).deserialize(null); - final NonCachingCodec nonCachingCodec = new NonCachingCodec<>(codec); - nonCachingCodec.serialize(null); - verify(codec).serialize(null); - nonCachingCodec.deserialize(null); - verify(codec).deserialize(null); + public void basicTest() { + try (NonCachingCodec nonCachingCodec = new NonCachingCodec<>(codec)) { + nonCachingCodec.serialize(object); + verify(codec).serialize(object); + nonCachingCodec.deserialize(node); + verify(codec).deserialize(node); + } } -} \ No newline at end of file +} diff --git a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullToStringInXpath.java b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullToStringInXpath.java index d64b49ff66..238b350879 100644 --- a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullToStringInXpath.java +++ b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullToStringInXpath.java @@ -58,12 +58,12 @@ public class LeafrefTypeWithNullToStringInXpath implements LeafrefTypeDefinition @Override public QName getQName() { - return null; + throw new UnsupportedOperationException(); } @Override public SchemaPath getPath() { - return null; + throw new UnsupportedOperationException(); } @Override diff --git a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullXpath.java b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullXpath.java index 00b9796a27..2fb962d610 100644 --- a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullXpath.java +++ b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullXpath.java @@ -46,12 +46,12 @@ public class LeafrefTypeWithNullXpath implements LeafrefTypeDefinition { @Override public QName getQName() { - return null; + throw new UnsupportedOperationException(); } @Override public SchemaPath getPath() { - return null; + throw new UnsupportedOperationException(); } @Override diff --git a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestIntegerTypeDefinition.java b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestIntegerTypeDefinition.java index 11e21cb4fe..93efdcc61e 100644 --- a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestIntegerTypeDefinition.java +++ b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestIntegerTypeDefinition.java @@ -47,7 +47,7 @@ final class TestIntegerTypeDefinition implements Int8TypeDefinition { @Override public SchemaPath getPath() { - return null; + throw new UnsupportedOperationException(); } @Override diff --git a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestLeafSchemaNode.java b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestLeafSchemaNode.java index abe2578445..239cf24233 100644 --- a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestLeafSchemaNode.java +++ b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestLeafSchemaNode.java @@ -49,12 +49,12 @@ public class TestLeafSchemaNode implements LeafSchemaNode { @Override public QName getQName() { - return null; + throw new UnsupportedOperationException(); } @Override public SchemaPath getPath() { - return null; + throw new UnsupportedOperationException(); } @Override diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMReadTransactionAdapterTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMReadTransactionAdapterTest.java index 8a60228f67..352e7a8a25 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMReadTransactionAdapterTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMReadTransactionAdapterTest.java @@ -18,6 +18,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Optional; +import java.util.concurrent.ExecutionException; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -48,7 +49,7 @@ public class ShardedDOMReadTransactionAdapterTest { } @Test - public void testRead() throws Exception { + public void testRead() throws InterruptedException, ExecutionException { final ListenableFuture>> readResult = readTx.read(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH); assertTrue(readTx.exists(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH).get()); @@ -56,7 +57,7 @@ public class ShardedDOMReadTransactionAdapterTest { } @After - public void close() throws Exception { + public void close() { readTx.close(); } @@ -93,7 +94,7 @@ public class ShardedDOMReadTransactionAdapterTest { @Override public DOMDataTreeProducer createProducer(final Collection subtrees) { - return null; + throw new UnsupportedOperationException(); } } } diff --git a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableNodeWithSubshardTest.java b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableNodeWithSubshardTest.java index db325bd50e..9fd5c6c0d2 100644 --- a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableNodeWithSubshardTest.java +++ b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableNodeWithSubshardTest.java @@ -62,7 +62,7 @@ public class WriteableNodeWithSubshardTest { @Override public PathArgument getIdentifier() { - return null; + throw new UnsupportedOperationException(); } } } \ No newline at end of file diff --git a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableSubshardBoundaryNodeTest.java b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableSubshardBoundaryNodeTest.java index 7119c4ac5b..2f62b239d1 100644 --- a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableSubshardBoundaryNodeTest.java +++ b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableSubshardBoundaryNodeTest.java @@ -12,6 +12,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -19,6 +20,7 @@ import com.google.common.collect.ImmutableMap; import org.junit.After; import org.junit.Assert; import org.junit.Test; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; public class WriteableSubshardBoundaryNodeTest { @@ -62,7 +64,7 @@ public class WriteableSubshardBoundaryNodeTest { assertSame(ImmutableMap.of(), writeableSubshardBoundaryNode.getChildrenWithSubshards()); Assert.assertEquals(TestUtils.DOM_DATA_TREE_IDENTIFIER.getRootIdentifier().getLastPathArgument(), writeableSubshardBoundaryNode.getIdentifier()); - assertNull(writeableSubshardBoundaryNode.getChild(null)); + assertNull(writeableSubshardBoundaryNode.getChild(mock(PathArgument.class))); } @After -- 2.36.6