/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
- * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * 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.
package org.onap.policy.models.tosca.authorative.concepts;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import com.google.gson.GsonBuilder;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+
import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.policy.common.utils.coder.CoderException;
"policies/vCPE.policy.monitoring.input.tosca.json",
"policies/vCPE.policy.monitoring.input.tosca.yaml",
"policies/vCPE.policy.operational.input.tosca.yaml",
- "policies/vDNS.policy.guard.frequency.input.tosca.json",
- "policies/vDNS.policy.guard.frequency.input.tosca.yaml",
- "policies/vDNS.policy.guard.minmax.input.tosca.yaml",
"policies/vDNS.policy.monitoring.input.tosca.json",
"policies/vDNS.policy.monitoring.input.tosca.yaml",
"policies/vDNS.policy.operational.input.tosca.yaml",
+ "policies/vDNS.policy.guard.frequencylimiter.input.tosca.yaml",
+ "policies/vDNS.policy.guard.minmaxvnfs.input.tosca.yaml",
"policies/vFirewall.policy.monitoring.input.tosca.json",
"policies/vFirewall.policy.monitoring.input.tosca.yaml",
"policies/vFirewall.policy.operational.input.tosca.json",
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);
}
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(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());
-
- policyList.get(10).setVersion("2.0.0");
- policyList.get(16).setVersion("3.4.5");
+ assertEquals(23, policyList.size());
+ assertEquals(22, filteredList.size());
+
+ //
+ // Change versions to a couple of policies
+ //
+ policyList.forEach(policy -> {
+ if ("onap.vfirewall.tca".equals(policy.getName())) {
+ policy.setVersion("2.0.0");
+ } else if ("operational.modifyconfig".equals(policy.getName())) {
+ policy.setVersion("3.4.5");
+ }
+ });
+ //
+ // We'll still get back the same number of policies
+ //
filteredList = filter.filter(policyList);
- assertEquals(15, filteredList.size());
- assertEquals("2.0.0", filteredList.get(7).getVersion());
- assertEquals("3.4.5", filteredList.get(12).getVersion());
-
- policyList.get(10).setVersion(VERSION_100);
- policyList.get(16).setVersion(VERSION_100);
+ assertEquals(22, filteredList.size());
+ //
+ // Assert that the correct versions are returned
+ //
+ policyList.forEach(policy -> {
+ if ("onap.vfirewall.tca".equals(policy.getName())) {
+ assertThat(policy.getVersion()).isEqualTo("2.0.0");
+ } else if ("operational.modifyconfig".equals(policy.getName())) {
+ assertThat(policy.getVersion()).isEqualTo("3.4.5");
+ } else if ("operational.scaleout".equals(policy.getName())) {
+ assertThat(policy.getVersion()).isEqualTo(VERSION_000);
+ } else {
+ assertThat(policy.getVersion()).isEqualTo(VERSION_100);
+ }
+ });
+
+ //
+ // Change versions back
+ //
+ policyList.forEach(policy -> {
+ if ("onap.vfirewall.tca".equals(policy.getName())) {
+ policy.setVersion(VERSION_100);
+ } else if ("operational.modifyconfig".equals(policy.getName())) {
+ policy.setVersion(VERSION_100);
+ }
+ });
+ //
+ // We'll still get back the same number of policies
+ //
filteredList = filter.filter(policyList);
- assertEquals(15, filteredList.size());
- assertEquals(VERSION_100, filteredList.get(7).getVersion());
- assertEquals(VERSION_100, filteredList.get(12).getVersion());
+ assertEquals(22, filteredList.size());
+ //
+ // Assert that the correct versions are returned
+ //
+ policyList.forEach(policy -> {
+ //
+ // Should we fix this to be 1.0.0??
+ //
+ if ("operational.scaleout".equals(policy.getName())) {
+ assertThat(policy.getVersion()).isEqualTo(VERSION_000);
+ } else {
+ assertThat(policy.getVersion()).isEqualTo(VERSION_100);
+ }
+ });
}
@Test
filter = ToscaPolicyFilter.builder().name("guard.frequency.scaleout").build();
filteredList = filter.filter(policyList);
- assertEquals(2, filteredList.size());
+ assertEquals(1, filteredList.size());
filter = ToscaPolicyFilter.builder().name("guard.frequency.scalein").build();
filteredList = filter.filter(policyList);
filter = ToscaPolicyFilter.builder().version(VERSION_100).build();
filteredList = filter.filter(policyList);
- assertEquals(17, filteredList.size());
+ assertEquals(22, filteredList.size());
filter = ToscaPolicyFilter.builder().name("OSDF_CASABLANCA.SubscriberPolicy_v1").version(VERSION_100).build();
filteredList = filter.filter(policyList);
// null pattern
ToscaPolicyFilter filter = ToscaPolicyFilter.builder().versionPrefix(null).build();
List<ToscaPolicy> filteredList = filter.filter(policyList);
- assertEquals(17, filteredList.size());
+ assertEquals(23, filteredList.size());
filter = ToscaPolicyFilter.builder().versionPrefix("1.").build();
filteredList = filter.filter(policyList);
- assertEquals(17, filteredList.size());
+ assertEquals(21, filteredList.size());
filter = ToscaPolicyFilter.builder().versionPrefix("100.").build();
filteredList = filter.filter(policyList);
public void testFilterTypeVersion() {
ToscaPolicyFilter filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.Operational").build();
List<ToscaPolicy> filteredList = filter.filter(policyList);
+ 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(4, filteredList.size());
filter = ToscaPolicyFilter.builder().type("onap.policies.monitoring.cdap.tca.hi.lo.app").build();
filter = ToscaPolicyFilter.builder().typeVersion(VERSION_000).build();
filteredList = filter.filter(policyList);
- assertEquals(17, filteredList.size());
+ assertEquals(0, filteredList.size());
- filter = ToscaPolicyFilter.builder().type("onap.policies.optimization.HpaPolicy").typeVersion(VERSION_000)
- .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(VERSION_000)
- .build();
+ .build();
filteredList = filter.filter(policyList);
- assertEquals(4, filteredList.size());
+ assertEquals(0, filteredList.size());
}
}