Merge "Add IOVisor module location augmentation"
authorKeith Burns <alagalah@gmail.com>
Fri, 20 Nov 2015 01:43:27 +0000 (01:43 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Fri, 20 Nov 2015 01:43:27 +0000 (01:43 +0000)
groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/endpoint/EndPointRpcRegistryTest.java

index 03d2fcad839ac6f07335f8b48dfee76a0269a23f..4914894d984a2b6a698ccbc7b38820b6dcfc52ef 100644 (file)
@@ -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<L3Address> 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<L2> l2List = new ArrayList<>();
+        l2List.add(l2Mock);
+        L3 l3Mock = mock(L3.class);
+        List<L3> 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<EndpointGroupCondition> 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<EndpointGroupCondition> 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));
+    }
 }