Decompose RPC implementation classes
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / services / sal / SalBundleServiceImplTest.java
index 1f944d7afd6bb2beae83eca29dce19ff4e7d7421..f0c03097e9f3a814cd035278adcef40edad8639a 100644 (file)
@@ -8,29 +8,24 @@
 package org.opendaylight.openflowplugin.impl.services.sal;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import com.google.common.util.concurrent.SettableFuture;
-import java.util.ArrayList;
 import java.util.List;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.Mockito;
 import org.mockito.junit.MockitoJUnitRunner;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.message.service.rev151020.SalExperimenterMessageService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.message.service.rev151020.SendExperimenter;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.message.service.rev151020.SendExperimenterInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.SalBundleService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.Messages;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.MessagesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.messages.Message;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.messages.MessageBuilder;
@@ -54,97 +49,79 @@ import org.opendaylight.yangtools.yang.common.Uint32;
 
 @RunWith(MockitoJUnitRunner.class)
 public class SalBundleServiceImplTest {
-
     private static final NodeRef NODE_REF = new NodeRef(InstanceIdentifier.create(Nodes.class)
             .child(Node.class, new NodeKey(new NodeId("openflow:1"))));
     private static final BundleId BUNDLE_ID = new BundleId(Uint32.ONE);
     private static final BundleFlags BUNDLE_FLAGS = new BundleFlags(true, false);
 
-    private SalBundleService service;
     @Mock
-    private SalExperimenterMessageService experimenterMessageService;
+    private SendExperimenter sendExperimenter;
     @Mock
     private List<BundleProperty> properties;
 
-    @Before
-    public void setUp() {
-        service = new SalBundleServiceImpl(experimenterMessageService);
-    }
-
     @Test
     public void testControlBundle() {
-        final ControlBundleInput input = new ControlBundleInputBuilder()
+        final var service = new ControlBundleImpl(sendExperimenter);
+
+        final var input = new ControlBundleInputBuilder()
                 .setNode(NODE_REF)
                 .setBundleId(BUNDLE_ID)
                 .setFlags(BUNDLE_FLAGS)
                 .setType(BundleControlType.ONFBCTOPENREQUEST)
                 .setBundleProperty(properties)
                 .build();
-        final SendExperimenterInputBuilder experimenterBuilder = new SendExperimenterInputBuilder();
-        experimenterBuilder.setNode(NODE_REF);
-        experimenterBuilder.setExperimenterMessageOfChoice(new BundleControlSalBuilder()
+        when(sendExperimenter.invoke(any())).thenReturn(SettableFuture.create());
+        service.invoke(input);
+        verify(sendExperimenter).invoke(new SendExperimenterInputBuilder()
+            .setNode(NODE_REF)
+            .setExperimenterMessageOfChoice(new BundleControlSalBuilder()
                 .setSalControlData(new SalControlDataBuilder(input).build())
-                .build());
-        Mockito.when(experimenterMessageService.sendExperimenter(any())).thenReturn(SettableFuture.create());
-        service.controlBundle(input);
-        Mockito.verify(experimenterMessageService).sendExperimenter(experimenterBuilder.build());
+                .build())
+            .build());
     }
 
     @Test
     public void testAddBundleMessages() {
-        final List<Message> innerMessages = createMessages();
-        final Messages messages = new MessagesBuilder().setMessage(innerMessages).build();
-        final AddBundleMessagesInput input = new AddBundleMessagesInputBuilder()
+        final var service = new AddBundleMessagesImpl(sendExperimenter);
+
+        final var innerMessages = createMessages();
+        final var messages = new MessagesBuilder().setMessage(innerMessages).build();
+        final var input = new AddBundleMessagesInputBuilder()
                 .setNode(NODE_REF)
                 .setBundleId(BUNDLE_ID)
                 .setFlags(BUNDLE_FLAGS)
                 .setBundleProperty(properties)
                 .setMessages(messages)
                 .build();
-        final SalAddMessageDataBuilder dataBuilder = new SalAddMessageDataBuilder();
+        final var dataBuilder = new SalAddMessageDataBuilder();
         dataBuilder.setBundleId(BUNDLE_ID).setFlags(BUNDLE_FLAGS).setBundleProperty(properties);
 
-        final BundleAddMessageSalBuilder addMessageBuilder = new BundleAddMessageSalBuilder();
-        final SendExperimenterInputBuilder experimenterBuilder = new SendExperimenterInputBuilder()
+        final var addMessageBuilder = new BundleAddMessageSalBuilder();
+        final var experimenterBuilder = new SendExperimenterInputBuilder()
                 .setNode(NODE_REF);
-        Mockito.when(experimenterMessageService.sendExperimenter(any())).thenReturn(SettableFuture.create());
-        service.addBundleMessages(input);
-        for (Message msg : innerMessages) {
-            Mockito.verify(experimenterMessageService)
-                    .sendExperimenter(experimenterBuilder
-                                  .setExperimenterMessageOfChoice(addMessageBuilder
-                                              .setSalAddMessageData(
-                                                    dataBuilder.setNode(NODE_REF).setBundleInnerMessage(
-                                                                                        msg.getBundleInnerMessage())
-                                                                                .build())
-                                                                .build()).build());
+        when(sendExperimenter.invoke(any())).thenReturn(SettableFuture.create());
+        service.invoke(input);
+        for (var msg : innerMessages) {
+            verify(sendExperimenter).invoke(experimenterBuilder
+                .setExperimenterMessageOfChoice(addMessageBuilder
+                    .setSalAddMessageData(
+                        dataBuilder.setNode(NODE_REF).setBundleInnerMessage(
+                            msg.getBundleInnerMessage())
+                        .build())
+                    .build())
+                .build());
         }
     }
 
     private static List<Message> createMessages() {
-        List<Message> messages  = new ArrayList<>();
-        messages.add(
-                new MessageBuilder().setNode(NODE_REF).setBundleInnerMessage(new BundleAddFlowCaseBuilder().build())
-                        .build());
-        messages.add(
-                new MessageBuilder().setNode(NODE_REF).setBundleInnerMessage(new BundleUpdateFlowCaseBuilder().build())
-                        .build());
-        messages.add(
-                new MessageBuilder().setNode(NODE_REF).setBundleInnerMessage(new BundleRemoveFlowCaseBuilder().build())
-                        .build());
-        messages.add(
-                new MessageBuilder().setNode(NODE_REF).setBundleInnerMessage(new BundleAddGroupCaseBuilder().build())
-                        .build());
-        messages.add(
-                new MessageBuilder().setNode(NODE_REF).setBundleInnerMessage(new BundleUpdateGroupCaseBuilder().build())
-                        .build());
-        messages.add(
-                new MessageBuilder().setNode(NODE_REF).setBundleInnerMessage(new BundleRemoveGroupCaseBuilder().build())
-                        .build());
-        messages.add(
-                new MessageBuilder().setNode(NODE_REF).setBundleInnerMessage(new BundleUpdatePortCaseBuilder().build())
-                        .build());
-        return messages;
+        final var builder = new MessageBuilder().setNode(NODE_REF);
+        return List.of(
+            builder.setBundleInnerMessage(new BundleAddFlowCaseBuilder().build()).build(),
+            builder.setBundleInnerMessage(new BundleUpdateFlowCaseBuilder().build()).build(),
+            builder.setBundleInnerMessage(new BundleRemoveFlowCaseBuilder().build()).build(),
+            builder.setBundleInnerMessage(new BundleAddGroupCaseBuilder().build()).build(),
+            builder.setBundleInnerMessage(new BundleUpdateGroupCaseBuilder().build()).build(),
+            builder.setBundleInnerMessage(new BundleRemoveGroupCaseBuilder().build()).build(),
+            builder.setBundleInnerMessage(new BundleUpdatePortCaseBuilder().build()).build());
     }
-
 }