Unit tests for ofoverlay
[groupbasedpolicy.git] / renderers / ofoverlay / src / test / java / org / opendaylight / groupbasedpolicy / renderer / ofoverlay / statistics / OFStatisticsManagerTest.java
1 /*\r
2  * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics;\r
10 \r
11 import static org.mockito.Mockito.mock;\r
12 \r
13 import java.util.Map;\r
14 import java.util.concurrent.ScheduledExecutorService;\r
15 \r
16 import org.junit.Before;\r
17 import org.junit.Test;\r
18 import org.opendaylight.groupbasedpolicy.api.StatisticsManager;\r
19 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.test.TestUtils;\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.RuleName;\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.Classifier;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.ClassifierBuilder;\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicy;\r
29 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
30 \r
31 public class OFStatisticsManagerTest {\r
32 \r
33     private final EndpointGroupId consumerEpgId = new EndpointGroupId("consumerEpg1");\r
34     private final EndpointGroupId providerEpgId = new EndpointGroupId("providerEpg1");\r
35     private final ContractId contractId = new ContractId("contract1");\r
36     private final TenantId tenantId = new TenantId("tenant1");\r
37     private final ClassifierName classifierName = ClassifierName.getDefaultInstance("classifier1");\r
38     private final SubjectName subjectName = SubjectName.getDefaultInstance("subject1");\r
39     private final RuleName ruleName = new RuleName("rule1");\r
40 \r
41     private InstanceIdentifier<ResolvedPolicy> rpIid;\r
42     private ResolvedPolicy resolvedPolicy;\r
43 \r
44     private ScheduledExecutorService executor;\r
45     private StatisticsManager statisticsManager;\r
46 \r
47     private OFStatisticsManager ofStatisticsManager;\r
48     private Classifier classifier;\r
49     private Map<InstanceIdentifier<Classifier>, Classifier> classifierByIid;\r
50 \r
51     @Before\r
52     public void init() {\r
53         executor = mock(ScheduledExecutorService.class);\r
54         statisticsManager = mock(StatisticsManager.class);\r
55 \r
56         classifier = new ClassifierBuilder()\r
57                 .setName(classifierName)\r
58                 .build();\r
59         resolvedPolicy = TestUtils.newResolvedPolicy(tenantId, contractId, subjectName, ruleName,\r
60                 consumerEpgId, providerEpgId, classifier);\r
61 \r
62         rpIid = InstanceIdentifier.create(ResolvedPolicy.class);\r
63 \r
64         ofStatisticsManager = new OFStatisticsManager(executor, statisticsManager);\r
65         ofStatisticsManager.setDelay(20L);\r
66         ofStatisticsManager.setSflowCollectorUri("http://localhost:1234");\r
67 \r
68         classifierByIid =\r
69                 ResolvedPolicyClassifierListener.resolveClassifiers(resolvedPolicy, rpIid);\r
70     }\r
71 \r
72     @Test\r
73     public void testConstructor() throws Exception {\r
74         OFStatisticsManager other = new OFStatisticsManager(executor, statisticsManager);\r
75         other.close();\r
76     }\r
77 \r
78     @Test\r
79     public void testTTT(){\r
80         for (Map.Entry<InstanceIdentifier<Classifier>, Classifier> classifierEntry : classifierByIid.entrySet()) {\r
81             ofStatisticsManager.pullStatsForClassifier(classifierEntry.getKey(),\r
82                     classifierEntry.getValue());\r
83         }\r
84     }\r
85 }\r