1 package org.opendaylight.openflowplugin.impl.services;
3 import com.google.common.util.concurrent.Futures;
4 import com.google.common.util.concurrent.ListenableFuture;
6 import org.mockito.Matchers;
7 import org.mockito.Mock;
8 import org.opendaylight.openflowplugin.api.openflow.registry.group.DeviceGroupRegistry;
9 import org.opendaylight.openflowplugin.api.openflow.rpc.listener.ItemLifecycleListener;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.*;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.OriginalGroup;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.OriginalGroupBuilder;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.UpdatedGroup;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.UpdatedGroupBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey;
18 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
19 import org.opendaylight.yangtools.yang.common.RpcResult;
20 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
22 import static org.mockito.Matchers.eq;
23 import static org.mockito.Mockito.mock;
24 import static org.mockito.Mockito.verify;
25 import static org.mockito.Mockito.when;
27 public class SalGroupServiceImplTest extends ServiceMocking {
29 private static final Long DUMMY_GROUP_ID = 15L;
32 DeviceGroupRegistry mockedDeviceGroupRegistry;
34 SalGroupServiceImpl salGroupService;
37 public void initialization() {
38 super.initialization();
39 when(mockedDeviceContext.getDeviceGroupRegistry()).thenReturn(mockedDeviceGroupRegistry);
40 salGroupService = new SalGroupServiceImpl(mockedRequestContextStack, mockedDeviceContext);
44 public void testAddGroup() throws Exception {
49 public void testAddGroupWithItemLifecycle() throws Exception {
50 addGroup(mock(ItemLifecycleListener.class));
53 private void addGroup(final ItemLifecycleListener itemLifecycleListener) {
54 final GroupId dummyGroupId = new GroupId(DUMMY_GROUP_ID);
55 AddGroupInput addGroupInput = new AddGroupInputBuilder().setGroupId(dummyGroupId).build();
57 this.<AddGroupOutput>mockSuccessfulFuture();
59 salGroupService.setItemLifecycleListener(itemLifecycleListener);
61 salGroupService.addGroup(addGroupInput);
62 verify(mockedRequestContextStack).createRequestContext();
63 verify(mockedDeviceGroupRegistry).store(eq(dummyGroupId));
65 if (itemLifecycleListener != null) {
66 verify(itemLifecycleListener).onAdded(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any(),Matchers.<Group>any());
71 public void testUpdateGroup() throws Exception {
76 public void testUpdateGroupWithItemLifecycle() throws Exception {
77 updateGroup(mock(ItemLifecycleListener.class));
80 private void updateGroup(final ItemLifecycleListener itemLifecycleListener) {
81 final UpdatedGroup updatedGroup = new UpdatedGroupBuilder().setGroupId(new GroupId(DUMMY_GROUP_ID)).build();
82 final OriginalGroup originalGroup = new OriginalGroupBuilder().setGroupId(new GroupId(DUMMY_GROUP_ID)).build();
83 final UpdateGroupInput updateGroupInput = new UpdateGroupInputBuilder().setUpdatedGroup(updatedGroup).setOriginalGroup(originalGroup).build();
85 this.<UpdateGroupOutput>mockSuccessfulFuture();
87 salGroupService.setItemLifecycleListener(itemLifecycleListener);
89 salGroupService.updateGroup(updateGroupInput);
90 verify(mockedRequestContextStack).createRequestContext();
92 if (itemLifecycleListener != null) {
93 verify(itemLifecycleListener).onAdded(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any(),Matchers.<Group>any());
94 verify(itemLifecycleListener).onRemoved(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any());
99 public void testRemoveGroup() throws Exception {
104 public void testRemoveGroupWithItemLifecycle() throws Exception {
105 removeGroup(mock(ItemLifecycleListener.class));
108 private void removeGroup(final ItemLifecycleListener itemLifecycleListener) throws Exception {
109 final GroupId dummyGroupId = new GroupId(DUMMY_GROUP_ID);
110 RemoveGroupInput removeGroupInput = new RemoveGroupInputBuilder().setGroupId(dummyGroupId).build();
112 this.<RemoveGroupOutput>mockSuccessfulFuture();
114 salGroupService.setItemLifecycleListener(itemLifecycleListener);
116 salGroupService.removeGroup(removeGroupInput);
117 verify(mockedRequestContextStack).createRequestContext();
118 verify(mockedDeviceGroupRegistry).markToBeremoved(eq(dummyGroupId));
120 if (itemLifecycleListener != null) {
121 verify(itemLifecycleListener).onRemoved(Matchers.<KeyedInstanceIdentifier<Group, GroupKey>>any());