*/
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());
- }
}
}