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
8 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.test;
10 import java.util.ArrayList;
11 import java.util.List;
14 import com.google.common.collect.ImmutableList;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.RuleName;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.Classifier;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.resolved.rules.ResolvedRuleBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicy;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicyBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.PolicyRuleGroupWithEndpointConstraints;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.PolicyRuleGroupWithEndpointConstraintsBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.policy.rule.group.with.endpoint.constraints.PolicyRuleGroup;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.policy.rule.group.with.endpoint.constraints.PolicyRuleGroupBuilder;
28 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
30 public class TestUtils {
32 // taken from org.opendaylight.groupbasedpolicy.renderer.faas.FaasPolicyManagerTest
33 // by Khaldoon Al-zoubi; modified as necessary
34 public static ResolvedPolicy newResolvedPolicy(TenantId tenantId, ContractId contractId, SubjectName subjectName,
35 RuleName ruleName, EndpointGroupId consumerEpgId, EndpointGroupId providerEpgId, Classifier classifier) {
36 ResolvedPolicyBuilder builder = new ResolvedPolicyBuilder();
37 builder.setConsumerEpgId(consumerEpgId);
38 builder.setConsumerTenantId(tenantId);
39 builder.setProviderEpgId(providerEpgId);
40 builder.setProviderTenantId(tenantId);
41 List<PolicyRuleGroupWithEndpointConstraints> pRulesGrpsWEp = new ArrayList<>();
42 PolicyRuleGroupWithEndpointConstraintsBuilder pRulesGrpWEp =
43 new PolicyRuleGroupWithEndpointConstraintsBuilder();
44 List<PolicyRuleGroup> pRulesGrps = new ArrayList<>();
45 PolicyRuleGroupBuilder pRulesGrp = new PolicyRuleGroupBuilder();
46 pRulesGrp.setContractId(contractId);
47 pRulesGrp.setTenantId(tenantId);
48 pRulesGrp.setSubjectName(subjectName);
49 pRulesGrp.setResolvedRule(ImmutableList
50 .of(new ResolvedRuleBuilder().setName(ruleName).setClassifier(ImmutableList.of(classifier)).build()));
51 pRulesGrps.add(pRulesGrp.build());
52 pRulesGrpWEp.setPolicyRuleGroup(pRulesGrps);
53 pRulesGrpsWEp.add(pRulesGrpWEp.build());
54 builder.setPolicyRuleGroupWithEndpointConstraints(pRulesGrpsWEp);
55 return builder.build();
58 public static InstanceIdentifier<Classifier> getClassifierIid(
59 Map<InstanceIdentifier<Classifier>, Classifier> resolvedClassifiers) {
60 Map.Entry<InstanceIdentifier<Classifier>, Classifier> firstEntry =
61 resolvedClassifiers.entrySet().iterator().next();
62 return firstEntry.getKey();