1 package org.opendaylight.groupbasedpolicy.neutron.mapper.infrastructure;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNotNull;
8 import java.util.concurrent.ExecutionException;
10 import org.junit.Test;
11 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
12 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
13 import org.opendaylight.groupbasedpolicy.neutron.mapper.test.GbpDataBrokerTest;
14 import org.opendaylight.groupbasedpolicy.neutron.mapper.test.PolicyAssert;
15 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ClassifierInstance;
23 public class RouterTest extends GbpDataBrokerTest {
25 private static final String IPV4_NAME = "IPv4";
26 private static final String IPV6_NAME = "IPv6";
27 private static final SubjectName ROUTER_SUBJECT_NAME = new SubjectName("ALLOW_IPv4_IPv6");
28 private final String tenantId = "00000000-0000-0000-0000-000000000002";
31 public void instantiate() {
32 Router service = new Router();
33 assertNotNull(service);
37 public void testWriteRouterClauseWithConsProvEicIpv4() throws Exception {
38 DataBroker dataBroker = getDataBroker();
39 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
40 String ipv4Prefix = "170.0.0.1/8";
41 Router.writeRouterClauseWithConsProvEic(new TenantId(tenantId), new IpPrefix(new Ipv4Prefix(ipv4Prefix)), rwTx);
44 //expected clause name
45 String clauseNameIpV4 = ROUTER_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER + ipv4Prefix;
46 clauseNameIpV4 = clauseNameIpV4.replace('/', '_');
48 PolicyAssert.assertClauseExists(dataBroker, tenantId, Router.CONTRACT_ID.getValue(), clauseNameIpV4);
53 public void testWriteRouterClauseWithConsProvEicIpv6() throws Exception {
54 DataBroker dataBroker = getDataBroker();
55 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
56 String ipv6Prefix = "2001:0db8:85a3:0000:0000:8a2e:0370:7334/128";
57 Router.writeRouterClauseWithConsProvEic(new TenantId(tenantId), new IpPrefix(new Ipv6Prefix(ipv6Prefix)), rwTx);
60 //expected clause name
61 String clauseNameIpV6 = ROUTER_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER + ipv6Prefix;
62 clauseNameIpV6 = clauseNameIpV6.replace('/', '_').replace(':', '.');
64 PolicyAssert.assertClauseExists(dataBroker, tenantId, Router.CONTRACT_ID.getValue(), clauseNameIpV6);
68 public void testWriteRouterEntitiesToTenant() throws Exception {
70 DataBroker dataBroker = getDataBroker();
71 ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
72 Router.writeRouterEntitiesToTenant(new TenantId(tenantId), rwTx);
75 //read classifier instances
76 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, IPV4_NAME);
77 PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, IPV6_NAME);
80 PolicyAssert.assertContractExists(dataBroker, tenantId, Router.CONTRACT_ID.getValue());
83 PolicyAssert.assertEndpointGroupExists(dataBroker, tenantId, Router.EPG_ID.getValue());
87 public void testGetAllClassifierInstances() {
88 Set<ClassifierInstance> classifierInstances = Router.getAllClassifierInstances();
89 assertNotNull(classifierInstances);
90 assertFalse(classifierInstances.isEmpty());
91 assertEquals(classifierInstances.size(), 2);