Fixup null warnings reported by eclipse 63/76763/10
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 8 Oct 2018 17:29:20 +0000 (19:29 +0200)
committerTom Pantelis <tompantelis@gmail.com>
Tue, 9 Oct 2018 16:06:53 +0000 (16:06 +0000)
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 <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMTransactionChainAdapterTest.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeCodec.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/NonCachingCodecTest.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullToStringInXpath.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/LeafrefTypeWithNullXpath.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestIntegerTypeDefinition.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TestLeafSchemaNode.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMReadTransactionAdapterTest.java
dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableNodeWithSubshardTest.java
dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/shard/WriteableSubshardBoundaryNodeTest.java

index e346ff6e3b3e7b27b6e1c1f0da64334aca9a38f2..8d897453b3ca31376a1a7b8ea172fbbc56fac8c6 100644 (file)
@@ -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);
index 75fd08ed27df095a9ac397281a42b7c94b707fe8..666ba79678ed936bcef1f4dc85ea06827d9d0724 100644 (file)
@@ -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();
index 9215b5ade8178cb8410be021ef54c75f98342a79..ffb50d3e0b9fff4d35ca9d6b0156c7e67badc7d9 100644 (file)
@@ -35,5 +35,5 @@ public interface BindingNormalizedNodeCodec<T extends DataObject> {
      * @param data Binding representation of data
      * @return Normalized Node representation of data
      */
-    @NonNull NormalizedNode<?,?> serialize(@NonNull T data);
+    @NonNull NormalizedNode<?, ?> serialize(@NonNull T data);
 }
index 952bb784f30301c2e62219f0a184043196b75756..1c740bc16c2ef21e849559a56c36385758c6b1b7 100644 (file)
@@ -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<DataObject> 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<DataObject> nonCachingCodec = new NonCachingCodec<>(codec)) {
+            nonCachingCodec.serialize(object);
+            verify(codec).serialize(object);
+            nonCachingCodec.deserialize(node);
+            verify(codec).deserialize(node);
+        }
     }
-}
\ No newline at end of file
+}
index d64b49ff66d6ba6a0f98c58224a59313a245b0c0..238b3508794476d148db3f8ddc73ef006b9ca9c5 100644 (file)
@@ -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
index 00b9796a27d37ba05e95ad0216e81228e45547e3..2fb962d6104dd482586dd493fda7f5add2cdc092 100644 (file)
@@ -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
index 11e21cb4feaa0c87196028f16d333c62a6c69a55..93efdcc61e5fa27f4f667ee7d0a1f0fcd4d69f6a 100644 (file)
@@ -47,7 +47,7 @@ final class TestIntegerTypeDefinition implements Int8TypeDefinition {
 
     @Override
     public SchemaPath getPath() {
-        return null;
+        throw new UnsupportedOperationException();
     }
 
     @Override
index abe2578445a577fa4919845f268bdb51d828e12a..239cf242338abbda82c94caa4bb97ba287fdfd5f 100644 (file)
@@ -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
index 8a60228f675690b6c523a91b8e61b5fbc050895e..352e7a8a254acc54af001ce2971004bbccb72d32 100644 (file)
@@ -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<Optional<NormalizedNode<?, ?>>> 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<DOMDataTreeIdentifier> subtrees) {
-            return null;
+            throw new UnsupportedOperationException();
         }
     }
 }
index db325bd50e23543eb9a5a431ad7575465289b609..9fd5c6c0d2cb919a69b958791bd9167b36eabb96 100644 (file)
@@ -62,7 +62,7 @@ public class WriteableNodeWithSubshardTest {
 
         @Override
         public PathArgument getIdentifier() {
-            return null;
+            throw new UnsupportedOperationException();
         }
     }
 }
\ No newline at end of file
index 7119c4ac5b721e3b7d0afa36c6ce82abbfc4f299..2f62b239d1d18a8807487a8b3ae368ff156327a7 100644 (file)
@@ -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