2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
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
9 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics;
11 import static org.mockito.Mockito.mock;
14 import java.util.concurrent.ScheduledExecutorService;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.opendaylight.groupbasedpolicy.api.StatisticsManager;
19 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.test.TestUtils;
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.ContractId;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.RuleName;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.Classifier;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.ClassifierBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicy;
29 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
31 public class OFStatisticsManagerTest {
33 private final EndpointGroupId consumerEpgId = new EndpointGroupId("consumerEpg1");
34 private final EndpointGroupId providerEpgId = new EndpointGroupId("providerEpg1");
35 private final ContractId contractId = new ContractId("contract1");
36 private final TenantId tenantId = new TenantId("tenant1");
37 private final ClassifierName classifierName = ClassifierName.getDefaultInstance("classifier1");
38 private final SubjectName subjectName = SubjectName.getDefaultInstance("subject1");
39 private final RuleName ruleName = new RuleName("rule1");
41 private InstanceIdentifier<ResolvedPolicy> rpIid;
42 private ResolvedPolicy resolvedPolicy;
44 private ScheduledExecutorService executor;
45 private StatisticsManager statisticsManager;
47 private OFStatisticsManager ofStatisticsManager;
48 private Classifier classifier;
49 private Map<InstanceIdentifier<Classifier>, Classifier> classifierByIid;
53 executor = mock(ScheduledExecutorService.class);
54 statisticsManager = mock(StatisticsManager.class);
56 classifier = new ClassifierBuilder()
57 .setName(classifierName)
59 resolvedPolicy = TestUtils.newResolvedPolicy(tenantId, contractId, subjectName, ruleName,
60 consumerEpgId, providerEpgId, classifier);
62 rpIid = InstanceIdentifier.create(ResolvedPolicy.class);
64 ofStatisticsManager = new OFStatisticsManager(executor, statisticsManager);
65 ofStatisticsManager.setDelay(20L);
66 ofStatisticsManager.setSflowCollectorUri("http://localhost:1234");
69 ResolvedPolicyClassifierListener.resolveClassifiers(resolvedPolicy, rpIid);
73 public void testConstructor() throws Exception {
74 OFStatisticsManager other = new OFStatisticsManager(executor, statisticsManager);
79 public void testTTT(){
80 for (Map.Entry<InstanceIdentifier<Classifier>, Classifier> classifierEntry : classifierByIid.entrySet()) {
81 ofStatisticsManager.pullStatsForClassifier(classifierEntry.getKey(),
82 classifierEntry.getValue());