X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-pdp%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fpdp%2Fconcepts%2FPdpGroupFilterTest.java;h=89a1333efdd57333e677705281c95e0878858c52;hb=f78237c84420aa8db35ae70d8c9d177307471474;hp=808bfe7d49233309b63fa1523931be9ec48f6dba;hpb=d37c71292d9cbdd892f328d63f49a8027b1f13c4;p=policy%2Fmodels.git diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpGroupFilterTest.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpGroupFilterTest.java index 808bfe7d4..89a1333ef 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpGroupFilterTest.java +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpGroupFilterTest.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -27,15 +27,14 @@ import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; - +import java.util.stream.Collectors; import org.junit.Before; import org.junit.Test; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.models.pdp.enums.PdpState; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; /** * Test of the {@link PdpGroupFilter} class. @@ -77,7 +76,7 @@ public class PdpGroupFilterTest { assertThatThrownBy(() -> { filter.filter(null); - }).hasMessage("originalList is marked @NonNull but is null"); + }).hasMessageMatching("originalList is marked .*ull but is null"); } @Test @@ -174,45 +173,61 @@ public class PdpGroupFilterTest { @Test public void testFilterPolicyType() { - List identifierList = new ArrayList<>(); + List identifierList = new ArrayList<>(); - identifierList.add(new ToscaPolicyTypeIdentifier(NON_EXISTANT, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(NON_EXISTANT, VERSION1)); PdpGroupFilter filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); List filteredList = filter.filter(pdpGroupList); assertEquals(0, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE0, VERSION1)); + // don't match wild cards + identifierList.add(new ToscaConceptIdentifier(NON_EXISTANT, VERSION1)); + filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); + final List wildCards = + pdpGroupList.stream().map(this::makeWildCardPolicyTypes).collect(Collectors.toList()); + filteredList = filter.filter(wildCards); + assertEquals(0, filteredList.size()); + identifierList.clear(); + + // match wild cards + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE0, VERSION1)); + filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); + filteredList = filter.filter(wildCards); + assertEquals(4, filteredList.size()); + identifierList.clear(); + + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE0, VERSION1)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(4, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE1, VERSION4)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(4, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE2, VERSION7)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE2, VERSION7)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(2, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE3, VERSION0)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE3, VERSION0)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(2, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(NON_EXISTANT, VERSION1)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE0, VERSION9)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE0, VERSION1)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE1, VERSION4)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE2, VERSION7)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE3, VERSION0)); + identifierList.add(new ToscaConceptIdentifier(NON_EXISTANT, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE0, VERSION9)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE0, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE2, VERSION7)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE3, VERSION0)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(5, filteredList.size()); @@ -222,82 +237,103 @@ public class PdpGroupFilterTest { assertEquals(0, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE0, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE0, VERSION1)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).matchPolicyTypesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(2, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE0, VERSION1)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE1, VERSION4)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE2, VERSION7)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE0, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE2, VERSION7)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).matchPolicyTypesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE0, VERSION1)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE1, VERSION4)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE3, VERSION0)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE0, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE3, VERSION0)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).matchPolicyTypesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE1, VERSION4)); - identifierList.add(new ToscaPolicyTypeIdentifier(POLICY_TYPE3, VERSION0)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY_TYPE3, VERSION0)); filter = PdpGroupFilter.builder().policyTypeList(identifierList).matchPolicyTypesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size()); } + /** + * Makes a clone of a PdpGroup, changing all occurrences of supported policy type, + * "policy.type.0", to a wild card type, "policy.type.*". + * + * @param group group to be cloned + * @return a new PdpGroup containing wild card policy types + */ + private PdpGroup makeWildCardPolicyTypes(PdpGroup group) { + PdpGroup newGroup = new PdpGroup(group); + + for (PdpSubGroup subgroup : newGroup.getPdpSubgroups()) { + for (ToscaConceptIdentifier subType : subgroup.getSupportedPolicyTypes()) { + if (POLICY_TYPE0.equals(subType.getName())) { + subType.setName("policy.type.*"); + } + } + } + + return newGroup; + } + @Test public void testFilterPolicy() { - List identifierList = new ArrayList<>(); + List identifierList = new ArrayList<>(); - identifierList.add(new ToscaPolicyIdentifier(NON_EXISTANT, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(NON_EXISTANT, VERSION1)); PdpGroupFilter filter = PdpGroupFilter.builder().policyList(identifierList).build(); List filteredList = filter.filter(pdpGroupList); assertEquals(0, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY0, VERSION9)); + identifierList.add(new ToscaConceptIdentifier(POLICY0, VERSION9)); filter = PdpGroupFilter.builder().policyList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(0, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY0, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY0, VERSION4)); filter = PdpGroupFilter.builder().policyList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(4, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY1, VERSION4)); filter = PdpGroupFilter.builder().policyList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY2, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY2, VERSION4)); filter = PdpGroupFilter.builder().policyList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(2, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY3, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY3, VERSION1)); filter = PdpGroupFilter.builder().policyList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(NON_EXISTANT, VERSION1)); - identifierList.add(new ToscaPolicyIdentifier(POLICY0, VERSION9)); - identifierList.add(new ToscaPolicyIdentifier(POLICY0, VERSION4)); - identifierList.add(new ToscaPolicyIdentifier(POLICY1, VERSION4)); - identifierList.add(new ToscaPolicyIdentifier(POLICY2, VERSION4)); - identifierList.add(new ToscaPolicyIdentifier(POLICY3, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(NON_EXISTANT, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY0, VERSION9)); + identifierList.add(new ToscaConceptIdentifier(POLICY0, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY2, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY3, VERSION1)); filter = PdpGroupFilter.builder().policyList(identifierList).build(); filteredList = filter.filter(pdpGroupList); assertEquals(5, filteredList.size()); @@ -307,27 +343,27 @@ public class PdpGroupFilterTest { assertEquals(0, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY0, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY0, VERSION4)); filter = PdpGroupFilter.builder().policyList(identifierList).matchPoliciesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(3, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY0, VERSION4)); - identifierList.add(new ToscaPolicyIdentifier(POLICY1, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY0, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY1, VERSION4)); filter = PdpGroupFilter.builder().policyList(identifierList).matchPoliciesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY2, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY2, VERSION4)); filter = PdpGroupFilter.builder().policyList(identifierList).matchPoliciesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size()); identifierList.clear(); - identifierList.add(new ToscaPolicyIdentifier(POLICY2, VERSION4)); - identifierList.add(new ToscaPolicyIdentifier(POLICY3, VERSION1)); + identifierList.add(new ToscaConceptIdentifier(POLICY2, VERSION4)); + identifierList.add(new ToscaConceptIdentifier(POLICY3, VERSION1)); filter = PdpGroupFilter.builder().policyList(identifierList).matchPoliciesExactly(true).build(); filteredList = filter.filter(pdpGroupList); assertEquals(1, filteredList.size());