Decompose RPC implementation classes
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / services / sal / SalGroupServiceImplTest.java
old mode 100644 (file)
new mode 100755 (executable)
index cf8e6ec..a5078f4
  */
 package org.opendaylight.openflowplugin.impl.services.sal;
 
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import org.junit.Test;
-import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.opendaylight.openflowplugin.api.openflow.registry.group.DeviceGroupRegistry;
-import org.opendaylight.openflowplugin.api.openflow.rpc.listener.ItemLifecycleListener;
 import org.opendaylight.openflowplugin.impl.services.ServiceMocking;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.OriginalGroup;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.OriginalGroupBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.UpdatedGroup;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.UpdatedGroupBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey;
+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.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 public class SalGroupServiceImplTest extends ServiceMocking {
+    private static final Uint32 DUMMY_GROUP_ID = Uint32.valueOf(15);
+    private static final KeyedInstanceIdentifier<Node, NodeKey> NODE_II =
+        InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(new NodeId(DUMMY_NODE_ID)));
 
-    private static final Long DUMMY_GROUP_ID = 15L;
+    private final NodeRef noderef = new NodeRef(NODE_II);
 
     @Mock
-    DeviceGroupRegistry mockedDeviceGroupRegistry;
+    private DeviceGroupRegistry mockedDeviceGroupRegistry;
 
-    SalGroupServiceImpl salGroupService;
+    private AddGroupImpl addGroup;
+    private RemoveGroupImpl removeGroup;
+    private UpdateGroupImpl updateGroup;
 
     @Override
-    public void initialization() {
-        super.initialization();
-        when(mockedDeviceContext.getDeviceGroupRegistry()).thenReturn(mockedDeviceGroupRegistry);
-        final ConvertorManager convertorManager = ConvertorManagerFactory.createDefaultManager();
-        salGroupService = new SalGroupServiceImpl(mockedRequestContextStack, mockedDeviceContext, convertorManager);
+    protected void setup() {
+        final var convertorManager = ConvertorManagerFactory.createDefaultManager();
+        addGroup = new AddGroupImpl(mockedRequestContextStack, mockedDeviceContext, convertorManager);
+        removeGroup = new RemoveGroupImpl(mockedRequestContextStack, mockedDeviceContext, convertorManager);
+        updateGroup = new UpdateGroupImpl(mockedRequestContextStack, mockedDeviceContext, convertorManager);
     }
 
     @Test
-    public void testAddGroup() throws Exception {
-        addGroup(null);
+    public void testAddGroup() {
+        addGroup();
     }
 
-    @Test
-    public void testAddGroupWithItemLifecycle() throws Exception {
-        addGroup(mock(ItemLifecycleListener.class));
-    }
-
-    private void addGroup(final ItemLifecycleListener itemLifecycleListener) {
-        final GroupId dummyGroupId = new GroupId(DUMMY_GROUP_ID);
-        AddGroupInput addGroupInput = new AddGroupInputBuilder().setGroupId(dummyGroupId).build();
+    private void addGroup() {
+        final var dummyGroupId = new GroupId(DUMMY_GROUP_ID);
+        final var addGroupInput = new AddGroupInputBuilder().setGroupId(dummyGroupId).setNode(noderef).build();
 
         this.<AddGroupOutput>mockSuccessfulFuture();
 
-        salGroupService.setItemLifecycleListener(itemLifecycleListener);
-
-        salGroupService.addGroup(addGroupInput);
+        addGroup.invoke(addGroupInput);
         verify(mockedRequestContextStack).createRequestContext();
-        verify(mockedDeviceGroupRegistry).store(eq(dummyGroupId));
 
-        if (itemLifecycleListener != null) {
-            verify(itemLifecycleListener).onAdded(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any(),Matchers.<Group>any());
-        }
     }
 
     @Test
-    public void testUpdateGroup() throws Exception {
-        updateGroup(null);
+    public void testUpdateGroup() {
+        updateGroup();
     }
 
     @Test
-    public void testUpdateGroupWithItemLifecycle() throws Exception {
-        updateGroup(mock(ItemLifecycleListener.class));
+    public void testUpdateGroupWithItemLifecycle() {
+        updateGroup();
     }
 
-    private void updateGroup(final ItemLifecycleListener itemLifecycleListener) {
-        final UpdatedGroup updatedGroup = new UpdatedGroupBuilder().setGroupId(new GroupId(DUMMY_GROUP_ID)).build();
-        final OriginalGroup originalGroup = new OriginalGroupBuilder().setGroupId(new GroupId(DUMMY_GROUP_ID)).build();
-        final UpdateGroupInput updateGroupInput = new UpdateGroupInputBuilder().setUpdatedGroup(updatedGroup).setOriginalGroup(originalGroup).build();
+    private void updateGroup() {
+        final var updatedGroup = new UpdatedGroupBuilder().setGroupId(new GroupId(DUMMY_GROUP_ID)).build();
+        final var originalGroup = new OriginalGroupBuilder().setGroupId(new GroupId(DUMMY_GROUP_ID)).build();
+        final var updateGroupInput =
+                new UpdateGroupInputBuilder().setUpdatedGroup(updatedGroup).setOriginalGroup(originalGroup).build();
 
         this.<UpdateGroupOutput>mockSuccessfulFuture();
-
-        salGroupService.setItemLifecycleListener(itemLifecycleListener);
-
-        salGroupService.updateGroup(updateGroupInput);
+        updateGroup.invoke(updateGroupInput);
         verify(mockedRequestContextStack).createRequestContext();
 
-        if (itemLifecycleListener != null) {
-            verify(itemLifecycleListener).onAdded(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any(),Matchers.<Group>any());
-            verify(itemLifecycleListener).onRemoved(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any());
-        }
     }
 
     @Test
-    public void testRemoveGroup() throws Exception {
-        removeGroup(null);
+    public void testRemoveGroup() {
+        removeGroup();
     }
 
     @Test
-    public void testRemoveGroupWithItemLifecycle() throws Exception {
-        removeGroup(mock(ItemLifecycleListener.class));
+    public void testRemoveGroupWithItemLifecycle() {
+        removeGroup();
     }
 
-    private void removeGroup(final ItemLifecycleListener itemLifecycleListener) throws Exception {
-        final GroupId dummyGroupId = new GroupId(DUMMY_GROUP_ID);
-        RemoveGroupInput removeGroupInput = new RemoveGroupInputBuilder().setGroupId(dummyGroupId).build();
-
+    private void removeGroup() {
+        final var dummyGroupId = new GroupId(DUMMY_GROUP_ID);
+        final var removeGroupInput = new RemoveGroupInputBuilder().setGroupId(dummyGroupId).build();
         this.<RemoveGroupOutput>mockSuccessfulFuture();
-
-        salGroupService.setItemLifecycleListener(itemLifecycleListener);
-
-        salGroupService.removeGroup(removeGroupInput);
+        removeGroup.invoke(removeGroupInput);
         verify(mockedRequestContextStack).createRequestContext();
-        verify(mockedDeviceGroupRegistry).addMark(eq(dummyGroupId));
 
-        if (itemLifecycleListener != null) {
-            verify(itemLifecycleListener).onRemoved(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any());
-        }
     }
 }