6dbf4f6c45bc0f1dc2aca7f45aaab1c1e71fc4d2
[groupbasedpolicy.git] / neutron-mapper / src / test / java / org / opendaylight / groupbasedpolicy / neutron / mapper / infrastructure / RouterTest.java
1 package org.opendaylight.groupbasedpolicy.neutron.mapper.infrastructure;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNotNull;
6
7 import java.util.Set;
8 import java.util.concurrent.ExecutionException;
9
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;
22
23 public class RouterTest extends GbpDataBrokerTest {
24
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";
29
30     @Test
31     public void instantiate() {
32         Router service = new Router();
33         assertNotNull(service);
34     }
35
36     @Test
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);
42         rwTx.submit().get();
43
44         //expected clause name
45         String clauseNameIpV4 = ROUTER_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER + ipv4Prefix;
46         clauseNameIpV4 = clauseNameIpV4.replace('/', '_');
47
48         PolicyAssert.assertClauseExists(dataBroker, tenantId, Router.CONTRACT_ID.getValue(), clauseNameIpV4);
49
50     }
51
52     @Test
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);
58         rwTx.submit().get();
59
60         //expected clause name
61         String clauseNameIpV6 = ROUTER_SUBJECT_NAME.getValue() + MappingUtils.NAME_DOUBLE_DELIMETER + ipv6Prefix;
62         clauseNameIpV6 = clauseNameIpV6.replace('/', '_').replace(':', '.');
63
64         PolicyAssert.assertClauseExists(dataBroker, tenantId, Router.CONTRACT_ID.getValue(), clauseNameIpV6);
65     }
66
67     @Test
68     public void testWriteRouterEntitiesToTenant() throws Exception {
69         //write everything
70         DataBroker dataBroker = getDataBroker();
71         ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
72         Router.writeRouterEntitiesToTenant(new TenantId(tenantId), rwTx);
73         rwTx.submit().get();
74
75         //read classifier instances
76         PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, IPV4_NAME);
77         PolicyAssert.assertClassifierInstanceExists(dataBroker, tenantId, IPV6_NAME);
78
79         //read contract
80         PolicyAssert.assertContractExists(dataBroker, tenantId, Router.CONTRACT_ID.getValue());
81
82         //read group id
83         PolicyAssert.assertEndpointGroupExists(dataBroker, tenantId, Router.EPG_ID.getValue());
84     }
85
86     @Test
87     public void testGetAllClassifierInstances() {
88         Set<ClassifierInstance> classifierInstances = Router.getAllClassifierInstances();
89         assertNotNull(classifierInstances);
90         assertFalse(classifierInstances.isEmpty());
91         assertEquals(classifierInstances.size(), 2);
92     }
93
94 }