/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @author Liam Fallon (liam.fallon@est.tech)
*/
public class ToscaPolicyFilterTest {
+ private static final String VERSION_100 = "1.0.0";
+
+ private static final String VERSION_000 = "0.0.0";
+
// Logger for this class
private static final Logger LOGGER = LoggerFactory.getLogger(ToscaPolicyFilterTest.class);
for (String policyResourceName : policyResourceNames) {
String policyString = ResourceUtils.getResourceAsString(policyResourceName);
if (policyResourceName.endsWith("yaml")) {
+ LOGGER.info("loading {}", policyResourceName);
Object yamlObject = new Yaml().load(policyString);
policyString = new GsonBuilder().setPrettyPrinting().create().toJson(yamlObject);
}
assertNotNull(serviceTemplate);
for (Map<String, ToscaPolicy> foundPolicyMap : serviceTemplate.getToscaTopologyTemplate().getPolicies()) {
- for (Entry<String, ToscaPolicy> policyEntry : foundPolicyMap.entrySet()) {
- ToscaPolicy policy = policyEntry.getValue();
- if (policy.getName() == null) {
- policy.setName(policyEntry.getKey());
- }
-
- if (policy.getVersion() == null) {
- policy.setVersion(PfKey.NULL_KEY_VERSION);
- }
- if (policy.getTypeVersion() == null) {
- policy.setTypeVersion(PfKey.NULL_KEY_VERSION);
- }
- if (!policyList.contains(policy)) {
- policyList.add(policy);
- }
- }
+ addPolicies(foundPolicyMap);
}
}
}
}
+ private static void addPolicies(Map<String, ToscaPolicy> foundPolicyMap) {
+ for (Entry<String, ToscaPolicy> policyEntry : foundPolicyMap.entrySet()) {
+ ToscaPolicy policy = policyEntry.getValue();
+ if (policy.getName() == null) {
+ policy.setName(policyEntry.getKey());
+ }
+
+ if (policy.getVersion() == null) {
+ policy.setVersion(PfKey.NULL_KEY_VERSION);
+ }
+ if (policy.getTypeVersion() == null) {
+ policy.setTypeVersion(PfKey.NULL_KEY_VERSION);
+ }
+ if (!policyList.contains(policy)) {
+ policyList.add(policy);
+ }
+ }
+ }
+
@Test
public void testNullList() {
ToscaPolicyFilter filter = ToscaPolicyFilter.builder().build();
assertThatThrownBy(() -> {
filter.filter(null);
- }).hasMessage("originalList is marked @NonNull but is null");
+ }).hasMessageMatching("originalList is marked .*on.*ull but is null");
}
@Test
ToscaPolicyFilter filter = ToscaPolicyFilter.builder().version(ToscaPolicyFilter.LATEST_VERSION).build();
List<ToscaPolicy> filteredList = filter.filter(policyList);
- assertEquals(15, filteredList.size());
- assertEquals("1.0.0", filteredList.get(7).getVersion());
- assertEquals("1.0.0", filteredList.get(12).getVersion());
+ assertEquals(22, filteredList.size());
+ assertEquals(VERSION_100, filteredList.get(7).getVersion());
+ assertEquals(VERSION_100, filteredList.get(12).getVersion());
- assertEquals(17, policyList.size());
- assertEquals(15, filteredList.size());
+ assertEquals(23, policyList.size());
+ assertEquals(22, filteredList.size());
policyList.get(10).setVersion("2.0.0");
policyList.get(16).setVersion("3.4.5");
filteredList = filter.filter(policyList);
- assertEquals(15, filteredList.size());
- assertEquals("2.0.0", filteredList.get(7).getVersion());
- assertEquals("3.4.5", filteredList.get(12).getVersion());
+ assertEquals(22, filteredList.size());
+ assertEquals("2.0.0", filteredList.get(12).getVersion());
+ assertEquals("3.4.5", filteredList.get(14).getVersion());
- policyList.get(10).setVersion("1.0.0");
- policyList.get(16).setVersion("1.0.0");
+ policyList.get(10).setVersion(VERSION_100);
+ policyList.get(16).setVersion(VERSION_100);
filteredList = filter.filter(policyList);
- assertEquals(15, filteredList.size());
- assertEquals("1.0.0", filteredList.get(7).getVersion());
- assertEquals("1.0.0", filteredList.get(12).getVersion());
+ assertEquals(22, filteredList.size());
+ assertEquals(VERSION_100, filteredList.get(12).getVersion());
+ assertEquals(VERSION_100, filteredList.get(14).getVersion());
}
@Test
public void testFilterNameVersion() {
ToscaPolicyFilter filter = ToscaPolicyFilter.builder().name("operational.modifyconfig").build();
List<ToscaPolicy> filteredList = filter.filter(policyList);
- assertEquals(2, filteredList.size());
+ assertEquals(1, filteredList.size());
filter = ToscaPolicyFilter.builder().name("guard.frequency.scaleout").build();
filteredList = filter.filter(policyList);
filteredList = filter.filter(policyList);
assertEquals(0, filteredList.size());
- filter = ToscaPolicyFilter.builder().version("1.0.0").build();
+ filter = ToscaPolicyFilter.builder().version(VERSION_100).build();
filteredList = filter.filter(policyList);
- assertEquals(17, filteredList.size());
+ assertEquals(21, filteredList.size());
- filter = ToscaPolicyFilter.builder().name("OSDF_CASABLANCA.SubscriberPolicy_v1").version("1.0.0").build();
+ filter = ToscaPolicyFilter.builder().name("OSDF_CASABLANCA.SubscriberPolicy_v1").version(VERSION_100).build();
filteredList = filter.filter(policyList);
assertEquals(1, filteredList.size());
- filter = ToscaPolicyFilter.builder().name("operational.modifyconfig").version("1.0.0").build();
+ filter = ToscaPolicyFilter.builder().name("operational.modifyconfig").version(VERSION_100).build();
filteredList = filter.filter(policyList);
- assertEquals(2, filteredList.size());
+ assertEquals(0, filteredList.size());
+ }
+
+ @Test
+ public void testFilterVersionPrefix() {
+ // null pattern
+ ToscaPolicyFilter filter = ToscaPolicyFilter.builder().versionPrefix(null).build();
+ List<ToscaPolicy> filteredList = filter.filter(policyList);
+ assertEquals(23, filteredList.size());
+
+ filter = ToscaPolicyFilter.builder().versionPrefix("1.").build();
+ filteredList = filter.filter(policyList);
+ assertEquals(21, filteredList.size());
+
+ filter = ToscaPolicyFilter.builder().versionPrefix("100.").build();
+ filteredList = filter.filter(policyList);
+ assertEquals(0, filteredList.size());
}
@Test
public void testFilterTypeVersion() {
ToscaPolicyFilter filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.Operational").build();
List<ToscaPolicy> filteredList = filter.filter(policyList);
- assertEquals(4, filteredList.size());
+ assertEquals(0, filteredList.size());
+
+ filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.operational.common.Apex").build();
+ filteredList = filter.filter(policyList);
+ assertEquals(0, filteredList.size());
+
+ filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.operational.common.Drools").build();
+ filteredList = filter.filter(policyList);
+ assertEquals(3, filteredList.size());
filter = ToscaPolicyFilter.builder().type("onap.policies.monitoring.cdap.tca.hi.lo.app").build();
filteredList = filter.filter(policyList);
- assertEquals(2, filteredList.size());
+ assertEquals(3, filteredList.size());
filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.NonOperational").build();
filteredList = filter.filter(policyList);
assertEquals(0, filteredList.size());
- filter = ToscaPolicyFilter.builder().typeVersion("0.0.0").build();
+ filter = ToscaPolicyFilter.builder().typeVersion(VERSION_000).build();
filteredList = filter.filter(policyList);
- assertEquals(17, filteredList.size());
+ assertEquals(3, filteredList.size());
- filter = ToscaPolicyFilter.builder().type("onap.policies.optimization.HpaPolicy").typeVersion("0.0.0").build();
+ filter = ToscaPolicyFilter.builder().type("onap.policies.optimization.resource.HpaPolicy")
+ .typeVersion(VERSION_100).build();
filteredList = filter.filter(policyList);
- assertEquals(1, filteredList.size());
+ assertEquals(2, filteredList.size());
- filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.Operational").typeVersion("0.0.0").build();
+ filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.Operational").typeVersion(VERSION_000)
+ .build();
filteredList = filter.filter(policyList);
- assertEquals(4, filteredList.size());
+ assertEquals(0, filteredList.size());
}
}