Merge "Update IidFactoryTest to use non-deprecated function"
[groupbasedpolicy.git] / groupbasedpolicy / src / test / java / org / opendaylight / groupbasedpolicy / util / IidFactoryTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.groupbasedpolicy.util;
10
11 import static org.mockito.Mockito.mock;
12
13 import org.junit.Assert;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClauseName;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2BridgeDomainId;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2FloodDomainId;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L3ContextId;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.RuleName;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SelectorName;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubnetId;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.Endpoints;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.Endpoint;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.EndpointKey;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.EndpointL3;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.EndpointL3Prefix;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRef;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.Tenant;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.Contract;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.EndpointGroup;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2BridgeDomain;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2FloodDomain;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L3Context;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.Subnet;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.Clause;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.Subject;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.subject.Rule;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ConsumerNamedSelector;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ProviderNamedSelector;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstance;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ClassifierInstance;
52 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
53
54 public class IidFactoryTest {
55
56     private TenantId tenantId;
57     private EndpointGroupId epgId;
58     private ContractId contractId;
59     private SubjectName subjectName;
60     private RuleName ruleName;
61
62     @Before
63     public void initialise() {
64         tenantId = mock(TenantId.class);
65         epgId = mock(EndpointGroupId.class);
66         contractId = mock(ContractId.class);
67         subjectName = mock(SubjectName.class);
68         ruleName = mock(RuleName.class);
69     }
70
71     @Test
72     public void tenantIdTest() {
73         InstanceIdentifier<Tenant> identifier = IidFactory.tenantIid(tenantId);
74         Assert.assertEquals(tenantId, InstanceIdentifier.keyOf(identifier).getId());
75     }
76
77     @Test
78     public void endpointGroupIidTest() {
79         InstanceIdentifier<EndpointGroup> identifier = IidFactory.endpointGroupIid(tenantId, epgId);
80         Assert.assertEquals(epgId, InstanceIdentifier.keyOf(identifier).getId());
81         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
82     }
83
84     @Test
85     public void contractIidTest() {
86         InstanceIdentifier<Contract> identifier = IidFactory.contractIid(tenantId, contractId);
87         Assert.assertEquals(contractId, InstanceIdentifier.keyOf(identifier).getId());
88         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
89     }
90
91     @Test
92     public void subjectIidTest() {
93         SubjectName subjectName = mock(SubjectName.class);
94         InstanceIdentifier<Subject> identifier = IidFactory.subjectIid(tenantId, contractId, subjectName);
95         Assert.assertEquals(subjectName, InstanceIdentifier.keyOf(identifier).getName());
96         Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
97         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
98     }
99
100     @Test
101     public void providerNamedSelectorIidTest() {
102         SelectorName providerSelectorName = mock(SelectorName.class);
103         InstanceIdentifier<ProviderNamedSelector> identifier = IidFactory.providerNamedSelectorIid(tenantId, epgId,
104                 providerSelectorName);
105         Assert.assertEquals(providerSelectorName, InstanceIdentifier.keyOf(identifier).getName());
106         Assert.assertEquals(epgId, identifier.firstKeyOf(EndpointGroup.class).getId());
107         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
108     }
109
110     @Test
111     public void consumerNamedSelectorIidTest() {
112         SelectorName consumerSelectorName = mock(SelectorName.class);
113         InstanceIdentifier<ConsumerNamedSelector> identifier = IidFactory.consumerNamedSelectorIid(tenantId, epgId,
114                 consumerSelectorName);
115         Assert.assertEquals(consumerSelectorName, InstanceIdentifier.keyOf(identifier).getName());
116         Assert.assertEquals(epgId, identifier.firstKeyOf(EndpointGroup.class).getId());
117         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
118     }
119
120     @Test
121     public void clauseIidTest() {
122         ClauseName clauseName = mock(ClauseName.class);
123         InstanceIdentifier<Clause> identifier = IidFactory.clauseIid(tenantId, contractId, clauseName);
124         Assert.assertEquals(clauseName, InstanceIdentifier.keyOf(identifier).getName());
125         Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
126         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
127     }
128
129     @Test
130     public void ruleIdTest() {
131         InstanceIdentifier<Rule> identifier = IidFactory.ruleIid(tenantId, contractId, subjectName, ruleName);
132         Assert.assertEquals(ruleName, InstanceIdentifier.keyOf(identifier).getName());
133         Assert.assertEquals(subjectName, identifier.firstKeyOf(Subject.class).getName());
134         Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
135         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
136     }
137
138     @Test
139     public void actionInstanceIidTest() {
140         ActionName actionName = mock(ActionName.class);
141         InstanceIdentifier<ActionInstance> identifier = IidFactory.actionInstanceIid(tenantId, actionName);
142         Assert.assertEquals(actionName, InstanceIdentifier.keyOf(identifier).getName());
143         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
144     }
145
146     @Test
147     public void classifierInstanceIidTest() {
148         ClassifierName classifierName = mock(ClassifierName.class);
149         InstanceIdentifier<ClassifierInstance> identifier = IidFactory.classifierInstanceIid(tenantId, classifierName);
150         Assert.assertEquals(classifierName, InstanceIdentifier.keyOf(identifier).getName());
151         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
152     }
153
154     @Test
155     public void classifierRefIidTest() {
156         ClassifierName classifierRefName = mock(ClassifierName.class);
157         InstanceIdentifier<ClassifierRef> identifier = IidFactory.classifierRefIid(tenantId, contractId, subjectName,
158                 ruleName, classifierRefName);
159         Assert.assertEquals(classifierRefName, InstanceIdentifier.keyOf(identifier).getName());
160         Assert.assertEquals(ruleName, identifier.firstKeyOf(Rule.class).getName());
161         Assert.assertEquals(subjectName, identifier.firstKeyOf(Subject.class).getName());
162         Assert.assertEquals(contractId, identifier.firstKeyOf(Contract.class).getId());
163         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
164     }
165
166     @Test
167     public void l2FloodDomainIidTest() {
168         L2FloodDomainId l2FloodDomainId = mock(L2FloodDomainId.class);
169         InstanceIdentifier<L2FloodDomain> identifier = IidFactory.l2FloodDomainIid(tenantId, l2FloodDomainId);
170         Assert.assertEquals(l2FloodDomainId, InstanceIdentifier.keyOf(identifier).getId());
171         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
172     }
173
174     @Test
175     public void l2BridgeDomainIidTest() {
176         L2BridgeDomainId l2BridgeDomainId = mock(L2BridgeDomainId.class);
177         InstanceIdentifier<L2BridgeDomain> identifier = IidFactory.l2BridgeDomainIid(tenantId, l2BridgeDomainId);
178         Assert.assertEquals(l2BridgeDomainId, InstanceIdentifier.keyOf(identifier).getId());
179         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
180     }
181
182     @Test
183     public void l3ContextIidTest() {
184         L3ContextId l3ContextId = mock(L3ContextId.class);
185         InstanceIdentifier<L3Context> identifier = IidFactory.l3ContextIid(tenantId, l3ContextId);
186         Assert.assertEquals(l3ContextId, InstanceIdentifier.keyOf(identifier).getId());
187         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
188     }
189
190     @Test
191     public void endpointIidTest() {
192         L2BridgeDomainId l2Context = mock(L2BridgeDomainId.class);
193         MacAddress macAddress = mock(MacAddress.class);
194         InstanceIdentifier<Endpoint> identifier = IidFactory.endpointIid(l2Context, macAddress);
195         Assert.assertEquals(l2Context, InstanceIdentifier.keyOf(identifier).getL2Context());
196         Assert.assertEquals(macAddress, InstanceIdentifier.keyOf(identifier).getMacAddress());
197
198         EndpointKey key = mock(EndpointKey.class);
199         identifier = IidFactory.endpointIid(key);
200         Assert.assertEquals(key, identifier.firstKeyOf(Endpoint.class));
201     }
202
203     @Test
204     public void l3EndpointIidTest() {
205         L3ContextId l3ContextId = mock(L3ContextId.class);
206         IpAddress ipAddress = mock(IpAddress.class);
207         InstanceIdentifier<EndpointL3> identifier = IidFactory.l3EndpointIid(l3ContextId, ipAddress);
208         Assert.assertEquals(l3ContextId, InstanceIdentifier.keyOf(identifier).getL3Context());
209         Assert.assertEquals(ipAddress, InstanceIdentifier.keyOf(identifier).getIpAddress());
210     }
211
212     @Test
213     public void l3EndpointIidWildcardTest() {
214         InstanceIdentifier<EndpointL3> identifier = IidFactory.l3EndpointsIidWildcard();
215         Assert.assertNotNull(identifier);
216     }
217
218     @Test
219     public void endpointL3PrefixIidTest() {
220         L3ContextId l3Context = mock(L3ContextId.class);
221         IpPrefix ipPrefix = mock(IpPrefix.class);
222         InstanceIdentifier<EndpointL3Prefix> identifier = IidFactory.endpointL3PrefixIid(l3Context, ipPrefix);
223         Assert.assertEquals(l3Context, InstanceIdentifier.keyOf(identifier).getL3Context());
224         Assert.assertEquals(ipPrefix, InstanceIdentifier.keyOf(identifier).getIpPrefix());
225     }
226
227     @Test
228     public void endpointIidWildcardTest() {
229         InstanceIdentifier<Endpoints> identifier = IidFactory.endpointsIidWildcard();
230         Assert.assertNotNull(identifier);
231     }
232
233     @Test
234     public void subnetIidTest() {
235         SubnetId subnetId = mock(SubnetId.class);
236         InstanceIdentifier<Subnet> identifier = IidFactory.subnetIid(tenantId, subnetId);
237         Assert.assertEquals(tenantId, identifier.firstKeyOf(Tenant.class).getId());
238         Assert.assertEquals(subnetId, identifier.firstKeyOf(Subnet.class).getId());
239     }
240
241 }