Add INFO.yaml for GBP
[groupbasedpolicy.git] / renderers / vpp / src / test / java / org / opendaylight / groupbasedpolicy / renderer / vpp / RendererResolvedPolicyTest.java
1 /*
2  * Copyright (c) 2017 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.renderer.vpp;
10
11 import java.util.Collections;
12 import java.util.Set;
13 import java.util.TreeSet;
14
15 import org.junit.Assert;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.mockito.Mockito;
19 import org.opendaylight.groupbasedpolicy.renderer.vpp.policy.RendererResolvedPolicy;
20 import org.opendaylight.groupbasedpolicy.renderer.vpp.policy.ResolvedRuleGroup;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.EndpointPolicyParticipation;
22
23 /**
24  * It's important not to lose any resolved rule when caching policy.
25  */
26 public class RendererResolvedPolicyTest {
27
28     private ResolvedRuleGroup resolvedRuleGroup1;
29     private ResolvedRuleGroup resolvedRuleGroup2;
30     private RendererResolvedPolicy rendResPolicy1;
31     private RendererResolvedPolicy rendResPolicy2;
32     private Set<RendererResolvedPolicy> testSet;
33
34     @Before
35     public void init() {
36         resolvedRuleGroup1 = Mockito.mock(ResolvedRuleGroup.class);
37         resolvedRuleGroup2 = Mockito.mock(ResolvedRuleGroup.class);
38     }
39
40     @Test
41     public void testCompareTo_sameParticipation() {
42         rendResPolicy1 = new RendererResolvedPolicy(EndpointPolicyParticipation.PROVIDER, resolvedRuleGroup1);
43         rendResPolicy2 = new RendererResolvedPolicy(EndpointPolicyParticipation.PROVIDER, resolvedRuleGroup1);
44         testSet = createSet(rendResPolicy1, rendResPolicy2);
45         Assert.assertEquals(testSet.size(), 1);
46         rendResPolicy2 = new RendererResolvedPolicy(EndpointPolicyParticipation.PROVIDER, resolvedRuleGroup2);
47         testSet = createSet(rendResPolicy1, rendResPolicy2);
48         Assert.assertEquals(testSet.size(), 2);
49     }
50
51     @Test
52     public void testCompareTo_differentParticipation() {
53         rendResPolicy1 = new RendererResolvedPolicy(EndpointPolicyParticipation.PROVIDER, resolvedRuleGroup1);
54         rendResPolicy2 = new RendererResolvedPolicy(EndpointPolicyParticipation.CONSUMER, resolvedRuleGroup1);
55         testSet = createSet(rendResPolicy1, rendResPolicy2);
56         Assert.assertEquals(testSet.size(), 2);
57         rendResPolicy2 = new RendererResolvedPolicy(EndpointPolicyParticipation.PROVIDER, resolvedRuleGroup2);
58         testSet = createSet(rendResPolicy1, rendResPolicy2);
59         Assert.assertEquals(testSet.size(), 2);
60     }
61
62     private Set<RendererResolvedPolicy> createSet(RendererResolvedPolicy... rendResolvedPolicies) {
63         Set<RendererResolvedPolicy> policies = new TreeSet<>();
64         Collections.addAll(policies, rendResolvedPolicies);
65         return policies;
66     }
67 }