/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
+import java.net.URISyntaxException;
import java.util.Base64;
import java.util.Map;
+import java.util.Set;
import lombok.NonNull;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyOutput;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml;
/**
* @author Liam Fallon (liam.fallon@est.tech)
*/
public class PolicyLegacyGuardPersistenceTest {
- // Logger for this class
- private static final Logger LOGGER = LoggerFactory.getLogger(PolicyLegacyGuardPersistenceTest.class);
-
private StandardCoder standardCoder;
private PolicyModelsProvider databaseProvider;
* @throws CoderException on JSON encoding and decoding errors
*/
@Before
- public void setupParameters() throws PfModelException, CoderException {
+ public void setupParameters() throws Exception {
+ // H2, use "org.mariadb.jdbc.Driver" and "jdbc:mariadb://localhost:3306/policy" for locally installed MariaDB
+
PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters();
parameters.setDatabaseDriver("org.h2.Driver");
parameters.setDatabaseUrl("jdbc:h2:mem:testdb");
}
@Test
- public void testPolicyPersistence() {
- try {
- for (int i = 0; i < policyInputResourceNames.length; i++) {
- String policyInputString = ResourceUtils.getResourceAsString(policyInputResourceNames[i]);
- String policyOutputString = ResourceUtils.getResourceAsString(policyOutputResourceNames[i]);
- testJsonStringPolicyPersistence(policyInputString, policyOutputString);
- }
- } catch (Exception exc) {
- LOGGER.warn("error processing policies", exc);
- fail("test should not throw an exception");
+ public void testLegacyGuardPolicyPersistence() throws Exception {
+ for (int i = 0; i < policyInputResourceNames.length; i++) {
+ String policyInputString = ResourceUtils.getResourceAsString(policyInputResourceNames[i]);
+ String policyOutputString = ResourceUtils.getResourceAsString(policyOutputResourceNames[i]);
+ testJsonStringPolicyPersistence(policyInputString, policyOutputString);
}
}
Map<String, LegacyGuardPolicyOutput> createdGopm = databaseProvider.createGuardPolicy(gip);
assertEquals(gip.getPolicyId(), createdGopm.keySet().iterator().next());
- assertEquals(gip.getContent(),
- createdGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
+ assertEquals(gip.getContent(), createdGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
- Map<String, LegacyGuardPolicyOutput> gotGopm = databaseProvider.getGuardPolicy(gip.getPolicyId());
+ Map<String, LegacyGuardPolicyOutput> gotGopm = databaseProvider.getGuardPolicy(gip.getPolicyId(), null);
assertEquals(gip.getPolicyId(), gotGopm.keySet().iterator().next());
- assertEquals(gip.getContent(),
- gotGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
+ assertEquals(gip.getContent(), gotGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
Map<String, LegacyGuardPolicyOutput> updatedGopm = databaseProvider.updateGuardPolicy(gip);
assertEquals(gip.getPolicyId(), updatedGopm.keySet().iterator().next());
- assertEquals(gip.getContent(),
- updatedGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
+ assertEquals(gip.getContent(), updatedGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
- Map<String, LegacyGuardPolicyOutput> deletedGopm = databaseProvider.deleteGuardPolicy(gip.getPolicyId());
+ Map<String, LegacyGuardPolicyOutput> deletedGopm = databaseProvider.deleteGuardPolicy(gip.getPolicyId(), "1");
assertEquals(gip.getPolicyId(), deletedGopm.keySet().iterator().next());
- assertEquals(gip.getContent(),
- deletedGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
+ assertEquals(gip.getContent(), deletedGopm.get(gip.getPolicyId()).getProperties().values().iterator().next());
String actualRetrievedJson = standardCoder.encode(gotGopm);
assertEquals(policyOutputString.replaceAll("\\s+", ""), actualRetrievedJson.replaceAll("\\s+", ""));
}
- private void createPolicyTypes() throws CoderException, PfModelException {
- Object yamlObject = new Yaml().load(
- ResourceUtils.getResourceAsString("policytypes/onap.policies.controlloop.guard.FrequencyLimiter.yaml"));
- String yamlAsJsonString = new StandardCoder().encode(yamlObject);
-
- ToscaServiceTemplate toscaServiceTemplatePolicyType =
- standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class);
+ private void createPolicyTypes() throws CoderException, PfModelException, URISyntaxException {
+ Set<String> policyTypeResources = ResourceUtils.getDirectoryContents("policytypes");
- assertNotNull(toscaServiceTemplatePolicyType);
- databaseProvider.createPolicyTypes(toscaServiceTemplatePolicyType);
+ for (String policyTyoeResource : policyTypeResources) {
+ Object yamlObject = new Yaml().load(ResourceUtils.getResourceAsString(policyTyoeResource));
+ String yamlAsJsonString = new StandardCoder().encode(yamlObject);
- yamlObject = new Yaml().load(
- ResourceUtils.getResourceAsString("policytypes/onap.policies.controlloop.guard.MinMax.yaml"));
- yamlAsJsonString = new StandardCoder().encode(yamlObject);
+ ToscaServiceTemplate toscaServiceTemplatePolicyType =
+ standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class);
- toscaServiceTemplatePolicyType = standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class);
-
- assertNotNull(toscaServiceTemplatePolicyType);
- databaseProvider.createPolicyTypes(toscaServiceTemplatePolicyType);
+ assertNotNull(toscaServiceTemplatePolicyType);
+ databaseProvider.createPolicyTypes(toscaServiceTemplatePolicyType);
+ }
}
}