From 6bffe47724002c419a2f19b709faa6092068410b Mon Sep 17 00:00:00 2001 From: Igor Bartak Date: Fri, 14 Aug 2015 11:03:07 +0200 Subject: [PATCH] Added new tests for EndPointRpcRegistry Signed-off-by: Igor Bartak Change-Id: I7304196e2ca83d71a5c0cc5eaf84129817021d99 --- .../endpoint/EndPointRpcRegistryTest.java | 129 ++++++++++++++++-- 1 file changed, 120 insertions(+), 9 deletions(-) diff --git a/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/endpoint/EndPointRpcRegistryTest.java b/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/endpoint/EndPointRpcRegistryTest.java index 03d2fcad8..4914894d9 100644 --- a/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/endpoint/EndPointRpcRegistryTest.java +++ b/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/endpoint/EndPointRpcRegistryTest.java @@ -1,11 +1,6 @@ package org.opendaylight.groupbasedpolicy.endpoint; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - +import com.google.common.util.concurrent.CheckedFuture; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.md.sal.binding.api.DataBroker; @@ -14,12 +9,28 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration; import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.Endpoints; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2BridgeDomainId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L3ContextId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.*; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoint.fields.L3Address; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.has.endpoint.group.conditions.EndpointGroupCondition; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.unregister.endpoint.input.L2; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.unregister.endpoint.input.L3; +import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.RpcService; -import com.google.common.util.concurrent.CheckedFuture; +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; + +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.*; public class EndPointRpcRegistryTest { @@ -29,6 +40,8 @@ public class EndPointRpcRegistryTest { private WriteTransaction t; private EpRendererAugmentation epRendererAugmentation; + private EndpointRpcRegistry endpointRpcRegistry; + @SuppressWarnings("unchecked") @Before public void initialisation() { @@ -74,4 +87,102 @@ public class EndPointRpcRegistryTest { EndpointRpcRegistry.unregister(epRendererAugmentation); verify(rpcRegistration, never()).close(); } + + @Test + public void registerEndpointTest()throws Exception{ + setPrivateInstanceByReflexion(); + endpointRpcRegistry.registerEndpoint(setRegisterEndpointVariablesForTest()); + verify(t, times(1)).put(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class), any(DataObject.class), eq(true)); + + endpointRpcRegistry.registerEndpoint(setL3AddressVariableForTest()); + verify(t, times(2)).put(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class), any(DataObject.class), eq(true)); + } + + private RegisterEndpointInput setRegisterEndpointVariablesForTest() throws Exception{ + RegisterEndpointInputBuilder registerEndpointInputBuilder = new RegisterEndpointInputBuilder(); + L2BridgeDomainId l2BridgeDomainIdMock = mock(L2BridgeDomainId.class); + registerEndpointInputBuilder.setL2Context(l2BridgeDomainIdMock); + MacAddress macAddressMock = mock(MacAddress.class); + registerEndpointInputBuilder.setMacAddress(macAddressMock); + return registerEndpointInputBuilder.build(); + } + + private RegisterEndpointInput setL3AddressVariableForTest(){ + RegisterEndpointInputBuilder registerEndpointInputBuilder = new RegisterEndpointInputBuilder(); + L3Address l3AddressMock = mock(L3Address.class); + List l3AddressList = new ArrayList<>(); + l3AddressList.add(l3AddressMock); + registerEndpointInputBuilder.setL3Address(l3AddressList); + return registerEndpointInputBuilder.build(); + } + + private void setPrivateInstanceByReflexion() throws Exception{ + ScheduledExecutorService scheduledExecutorServiceMock = mock(ScheduledExecutorService.class); + Constructor[] cons = EndpointRpcRegistry.class.getDeclaredConstructors(); + cons[0].setAccessible(true); + endpointRpcRegistry = (EndpointRpcRegistry)cons[0].newInstance(dataProvider, rpcRegistry, scheduledExecutorServiceMock); + } + + @Test + public void registerL3PrefixEndpointTest()throws Exception{ + setPrivateInstanceByReflexion(); + endpointRpcRegistry.registerL3PrefixEndpoint(setL3PrefixTestVariables()); + verify(t, atLeast(1)).put(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class), any(DataObject.class)); + } + + private RegisterL3PrefixEndpointInput setL3PrefixTestVariables(){ + RegisterL3PrefixEndpointInputBuilder registerL3PrefixEndpointInputBuilder = new RegisterL3PrefixEndpointInputBuilder(); + L3ContextId l3ContextIdMock = mock(L3ContextId.class); + registerL3PrefixEndpointInputBuilder.setL3Context(l3ContextIdMock); + IpPrefix ipPrefixMock = mock(IpPrefix.class); + registerL3PrefixEndpointInputBuilder.setIpPrefix(ipPrefixMock); + TenantId tenantIdMock = mock(TenantId.class); + registerL3PrefixEndpointInputBuilder.setTenant(tenantIdMock); + return registerL3PrefixEndpointInputBuilder.build(); + } + + @Test + public void unregisterEndpointTest() throws Exception{ + setPrivateInstanceByReflexion(); + L2 l2Mock = mock(L2.class); + List l2List = new ArrayList<>(); + l2List.add(l2Mock); + L3 l3Mock = mock(L3.class); + List l3List = new ArrayList<>(); + l3List.add(l3Mock); + UnregisterEndpointInput unregisterEndpointInputMock = mock(UnregisterEndpointInput.class); + doReturn(l2List).when(unregisterEndpointInputMock).getL2(); + doReturn(l3List).when(unregisterEndpointInputMock).getL3(); + endpointRpcRegistry.unregisterEndpoint(unregisterEndpointInputMock); + verify(t, times(2)).delete(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class)); + } + + @Test + public void setEndpointGroupConditionsTest()throws Exception{ + setPrivateInstanceByReflexion(); + EndpointGroupId endpointGroupIdMock = mock(EndpointGroupId.class); + + EndpointGroupCondition endpointGroupConditionMock = mock(EndpointGroupCondition.class); + List endpointGroupConditionList = new ArrayList(); + endpointGroupConditionList.add(endpointGroupConditionMock); + SetEndpointGroupConditionsInput setEndpointGroupConditionsInputMock = mock(SetEndpointGroupConditionsInput.class); + doReturn(endpointGroupIdMock).when(setEndpointGroupConditionsInputMock).getEndpointGroup(); + doReturn(endpointGroupConditionList).when(setEndpointGroupConditionsInputMock).getEndpointGroupCondition(); + endpointRpcRegistry.setEndpointGroupConditions(setEndpointGroupConditionsInputMock); + verify(t, atLeast(1)).put(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class), any(EndpointGroupCondition.class)); + } + + @Test + public void unsetEndpointGroupConditionsTest()throws Exception{ + setPrivateInstanceByReflexion(); + + UnsetEndpointGroupConditionsInput unsetEndpointGroupConditionsInputMock = mock(UnsetEndpointGroupConditionsInput.class); + EndpointGroupCondition endpointGroupConditionMock = mock(EndpointGroupCondition.class); + List endpointGroupConditionList = new ArrayList(); + endpointGroupConditionList.add(endpointGroupConditionMock); + doReturn(mock(EndpointGroupId.class)).when(unsetEndpointGroupConditionsInputMock).getEndpointGroup(); + doReturn(endpointGroupConditionList).when(unsetEndpointGroupConditionsInputMock).getEndpointGroupCondition(); + endpointRpcRegistry.unsetEndpointGroupConditions(unsetEndpointGroupConditionsInputMock); + verify(t, times(1)).delete(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class)); + } } -- 2.36.6