Bug 5409 - setting orders in single rule contract
[groupbasedpolicy.git] / neutron-mapper / src / test / java / org / opendaylight / groupbasedpolicy / neutron / mapper / mapping / rule / SingleRuleContractTest.java
1 package org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.rule;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
5
6 import org.junit.Test;
7 import org.opendaylight.groupbasedpolicy.neutron.mapper.test.NeutronEntityFactory;
8 import org.opendaylight.groupbasedpolicy.neutron.mapper.test.PolicyAssert;
9 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
10 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.NeutronUtils;
11 import org.opendaylight.neutron.spi.NeutronSecurityRule;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRef;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.Contract;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Clause;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Subject;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.subject.Rule;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstance;
19
20 public class SingleRuleContractTest {
21
22     @Test
23     public void testConstructorAndGetters() {
24         NeutronSecurityRule secRule = NeutronEntityFactory.securityRuleWithoutGroupIds(
25                 "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", NeutronUtils.IPv4,
26                 NeutronUtils.INGRESS, NeutronUtils.TCP, 8010, 8020);
27         int subjectAndRuleOrder = 1;
28         SingleRuleContract singleRuleContract = new SingleRuleContract(secRule, subjectAndRuleOrder, new Description(
29                 "contractDescription"), MappingUtils.ALLOW_ACTION_CHOICE);
30
31         SingleClassifierRule singleClsfRule = singleRuleContract.getSingleClassifierRule();
32         assertNotNull(singleClsfRule);
33
34         ClassifierInstance clsfInstance = singleClsfRule.getClassifierInstance();
35         assertNotNull(clsfInstance);
36         assertEquals(clsfInstance, SecRuleEntityDecoder.getClassifierInstance(secRule));
37
38         ClassifierRef clsfRef = singleClsfRule.getClassifierRef();
39         assertNotNull(clsfRef);
40         assertEquals(clsfRef, SecRuleEntityDecoder.getClassifierRef(secRule));
41
42         Rule rule = singleClsfRule.getRule();
43         assertNotNull(rule);
44         PolicyAssert.assertRule(rule, secRule, subjectAndRuleOrder + 180);
45
46         assertEquals(rule, singleRuleContract.getRule());
47
48         Subject subject = singleRuleContract.getSubject();
49         assertNotNull(subject);
50         PolicyAssert.assertSubjectWithOneRule(subject, secRule);
51
52         Clause clause = singleRuleContract.getClause();
53         assertNotNull(clause);
54         PolicyAssert.assertClauseWithOneSubject(clause, secRule);
55
56         Contract contract = singleRuleContract.getContract();
57         assertNotNull(contract);
58         PolicyAssert.assertContract(contract, secRule);
59     }
60 }