Clean up BindingDOMAdapterLoaderTest 59/103359/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 24 Nov 2022 16:57:43 +0000 (17:57 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 24 Nov 2022 17:21:12 +0000 (18:21 +0100)
We have @Test(expected=) here as well as nulls which are not allowed.
Clean up the entire test.

Change-Id: Ie1774401adceed35d519de8f6d844096a6ee8798
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

index 49b7c807b87a46efd5dda9d3619549127213fb54..2e2d2a192ae8661a57d3b638ca906a5a83d0d2a8 100644 (file)
@@ -7,33 +7,39 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter;
 
-import static org.junit.Assert.assertFalse;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertThrows;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 
 import com.google.common.collect.ImmutableClassToInstanceMap;
+import java.util.Optional;
 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.DataTreeChangeListener;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.TransactionChainListener;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMService;
+import org.opendaylight.yang.gen.v1.bug8449.rev170516.Top;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class BindingDOMAdapterLoaderTest {
-
     @Mock
     private DOMDataBroker domService;
     @Mock
     private AdapterContext mockContext;
 
     private BindingDOMAdapterLoader bindingDOMAdapterLoader;
-    private BindingDOMDataBrokerAdapter bindingDOMDataBrokerAdapter;
 
     @Before
     public void setUp() {
@@ -48,22 +54,29 @@ public class BindingDOMAdapterLoaderTest {
 
     @Test
     public void createBuilderTest() {
-        assertTrue(bindingDOMAdapterLoader.load(DataBroker.class).get() instanceof BindingDOMDataBrokerAdapter);
+        assertDataBrokerAdapter();
         domService = null;
-        assertFalse(bindingDOMAdapterLoader.load(DataBroker.class).isPresent());
+        assertEquals(Optional.empty(), bindingDOMAdapterLoader.load(DataBroker.class));
     }
 
     @Test
     public void createChainTest() {
-        bindingDOMDataBrokerAdapter
-                = (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get();
-        assertNotNull(bindingDOMDataBrokerAdapter.createTransactionChain(mock(TransactionChainListener.class)));
+        final var adapter = assertDataBrokerAdapter();
+        assertNotNull(adapter.createTransactionChain(mock(TransactionChainListener.class)));
     }
 
-    @Test(expected = UnsupportedOperationException.class)
+    @Test
     public void registerWithException() {
-        bindingDOMDataBrokerAdapter
-                = (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get();
-        bindingDOMDataBrokerAdapter.registerDataTreeChangeListener(null, null);
+        final var adapter = assertDataBrokerAdapter();
+        final var ex = assertThrows(UnsupportedOperationException.class, () -> adapter.registerDataTreeChangeListener(
+                DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Top.class)),
+                mock(DataTreeChangeListener.class)));
+        assertEquals("Underlying data broker does not expose DOMDataTreeChangeService.", ex.getMessage());
+    }
+
+    private BindingDOMDataBrokerAdapter assertDataBrokerAdapter() {
+        final var service = bindingDOMAdapterLoader.load(DataBroker.class).orElseThrow();
+        assertThat(service, instanceOf(BindingDOMDataBrokerAdapter.class));
+        return (BindingDOMDataBrokerAdapter) service;
     }
 }
\ No newline at end of file