1 package org.opendaylight.groupbasedpolicy.neutron.gbp.util;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNotNull;
6 import static org.junit.Assert.assertTrue;
7 import static org.mockito.Mockito.mock;
9 import java.util.Iterator;
11 import org.junit.Test;
12 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2BridgeDomainId;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L3ContextId;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.UniqueId;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.Mappings;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.GbpByNeutronMappings;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.NeutronByGbpMappings;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.EndpointsByPorts;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.endpoints.by.ports.EndpointByPort;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.ExternalGatewaysAsL3Endpoints;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.PortsByEndpoints;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.external.gateways.as.l3.endpoints.ExternalGatewayAsL3Endpoint;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.ports.by.endpoints.PortByEndpoint;
26 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
27 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
29 public class NeutronGbpIidFactoryTest {
32 public void endpointByPortIidTest() {
33 UniqueId portId = mock(UniqueId.class);
34 InstanceIdentifier<EndpointByPort> id = NeutronGbpIidFactory.endpointByPortIid(portId);
36 Class<?>[] expectedTypes = {Mappings.class, GbpByNeutronMappings.class, EndpointsByPorts.class,
37 EndpointByPort.class};
38 assertPathArgumentTypes(id.getPathArguments(), expectedTypes);
39 assertEquals(EndpointByPort.class, id.getTargetType());
40 assertFalse(id.isWildcarded());
41 assertEquals(portId, id.firstKeyOf(EndpointByPort.class).getPortId());
45 public void portByEndpointIidTest() {
46 L2BridgeDomainId l2BdId = mock(L2BridgeDomainId.class);
47 MacAddress mac = mock(MacAddress.class);
48 InstanceIdentifier<PortByEndpoint> id = NeutronGbpIidFactory.portByEndpointIid(l2BdId, mac);
50 Class<?>[] expectedTypes = {Mappings.class, NeutronByGbpMappings.class, PortsByEndpoints.class,
51 PortByEndpoint.class};
52 assertPathArgumentTypes(id.getPathArguments(), expectedTypes);
53 assertEquals(PortByEndpoint.class, id.getTargetType());
54 assertFalse(id.isWildcarded());
55 assertEquals(l2BdId, id.firstKeyOf(PortByEndpoint.class).getL2Context());
56 assertEquals(mac, id.firstKeyOf(PortByEndpoint.class).getMacAddress());
60 public void externalGatewayAsL3EndpointTest() {
61 L3ContextId l3Context = mock(L3ContextId.class);
62 IpAddress ipAddress = mock(IpAddress.class);
63 InstanceIdentifier<ExternalGatewayAsL3Endpoint> id = NeutronGbpIidFactory.externalGatewayAsL3Endpoint(
64 l3Context, ipAddress);
66 Class<?>[] expectedTypes = {Mappings.class, NeutronByGbpMappings.class, ExternalGatewaysAsL3Endpoints.class,
67 ExternalGatewayAsL3Endpoint.class};
68 assertPathArgumentTypes(id.getPathArguments(), expectedTypes);
69 assertEquals(ExternalGatewayAsL3Endpoint.class, id.getTargetType());
70 assertFalse(id.isWildcarded());
71 assertEquals(l3Context, id.firstKeyOf(ExternalGatewayAsL3Endpoint.class)
73 assertEquals(ipAddress, id.firstKeyOf(ExternalGatewayAsL3Endpoint.class)
77 private static void assertPathArgumentTypes(Iterable<PathArgument> pathArguments, Class<?>[] expectedTypes) {
78 assertNotNull(pathArguments);
79 Iterator<PathArgument> it = pathArguments.iterator();
80 for (int i = 0; i < expectedTypes.length; ++i) {
81 assertTrue("Next path argument expected.", it.hasNext());
82 assertEquals("Unexpected path argument type.", expectedTypes[i], it.next().getType());