/*
* Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics;
import static org.mockito.Mockito.mock;
import java.util.Map;
import java.util.concurrent.ScheduledExecutorService;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.groupbasedpolicy.api.StatisticsManager;
import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.test.TestUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.RuleName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.Classifier;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.ClassifierBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicy;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class OFStatisticsManagerTest {
private final EndpointGroupId consumerEpgId = new EndpointGroupId("consumerEpg1");
private final EndpointGroupId providerEpgId = new EndpointGroupId("providerEpg1");
private final ContractId contractId = new ContractId("contract1");
private final TenantId tenantId = new TenantId("tenant1");
private final ClassifierName classifierName = ClassifierName.getDefaultInstance("classifier1");
private final SubjectName subjectName = SubjectName.getDefaultInstance("subject1");
private final RuleName ruleName = new RuleName("rule1");
private InstanceIdentifier<ResolvedPolicy> rpIid;
private ResolvedPolicy resolvedPolicy;
private ScheduledExecutorService executor;
private StatisticsManager statisticsManager;
private OFStatisticsManager ofStatisticsManager;
private Classifier classifier;
private Map<InstanceIdentifier<Classifier>, Classifier> classifierByIid;
@Before
public void init() {
executor = mock(ScheduledExecutorService.class);
statisticsManager = mock(StatisticsManager.class);
classifier = new ClassifierBuilder()
.setName(classifierName)
.build();
resolvedPolicy = TestUtils.newResolvedPolicy(tenantId, contractId, subjectName, ruleName,
consumerEpgId, providerEpgId, classifier);
rpIid = InstanceIdentifier.create(ResolvedPolicy.class);
ofStatisticsManager = new OFStatisticsManager(executor, statisticsManager);
ofStatisticsManager.setDelay(20L);
ofStatisticsManager.setSflowCollectorUri("http://localhost:1234");
classifierByIid =
ResolvedPolicyClassifierListener.resolveClassifiers(resolvedPolicy, rpIid);
}
@Test
public void testConstructor() throws Exception {
OFStatisticsManager other = new OFStatisticsManager(executor, statisticsManager);
other.close();
}
@Test
public void testTTT(){
for (Map.Entry<InstanceIdentifier<Classifier>, Classifier> classifierEntry : classifierByIid.entrySet()) {
ofStatisticsManager.pullStatsForClassifier(classifierEntry.getKey(),
classifierEntry.getValue());
}
}
}