/* * 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.util; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.Before; import org.junit.Test; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics.ResolvedPolicyClassifierListener; 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.ClassifierKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicy; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class IidSflowNameUtilTest { 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 String testName; private ResolvedPolicy resolvedPolicy; @Before public void init() { Classifier classifier = mock(Classifier.class); when(classifier.getKey()).thenReturn(new ClassifierKey(classifierName)); resolvedPolicy = TestUtils.newResolvedPolicy(tenantId, contractId, subjectName, ruleName, consumerEpgId, providerEpgId, classifier); rpIid = InstanceIdentifier.create(ResolvedPolicy.class); testName = tenantId.getValue() + IidSflowNameUtil.KEY_DELIMETER + contractId.getValue() + IidSflowNameUtil.KEY_DELIMETER + subjectName .getValue() + IidSflowNameUtil.DELIMETER + ruleName.getValue() + IidSflowNameUtil.DELIMETER + classifierName .getValue() + IidSflowNameUtil.DELIMETER + FlowCacheCons.Value.BYTES.get(); } @Test public void testCreateFlowCacheName() { InstanceIdentifier<Classifier> classifierIid = TestUtils.getClassifierIid( ResolvedPolicyClassifierListener.resolveClassifiers(resolvedPolicy, rpIid)); assertEquals(testName, IidSflowNameUtil.createFlowCacheName(classifierIid, FlowCacheCons.Value.BYTES)); } @Test public void testResolveContractIdFromFlowCacheName() { assertEquals(contractId.getValue(), IidSflowNameUtil.resolveContractIdFromFlowCacheName(testName).getValue()); } @Test public void testResolveSubjectNameFromFlowCacheName() { assertEquals(subjectName.getValue(), IidSflowNameUtil.resolveSubjectNameFromFlowCacheName(testName).getValue()); } @Test public void testResolveRuleNameFromFlowCacheName() { assertEquals(ruleName.getValue(), IidSflowNameUtil.resolveRuleNameFromFlowCacheName(testName).getValue()); } @Test public void testResolveClassifierNameFromFlowCacheName() { assertEquals(classifierName.getValue(), IidSflowNameUtil.resolveClassifierNameFromFlowCacheName(testName).getValue()); } @Test public void testResolveFlowCacheValue() { assertEquals(FlowCacheCons.Value.BYTES.get(), IidSflowNameUtil.resolveFlowCacheValue(testName)); } }