aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>2017-09-13 16:21:38 +0200
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>2017-09-13 16:21:38 +0200
commitff1b29770a38e58c7b8e59e567339c3f7921aa5c (patch)
tree8757a6ce9267ac500a4d912ea426b2b7017e7422
parent9f6d3a45ca962a1ed5c64c84a01e398ec3b00874 (diff)
Add test to Holmes
New test for holmes and refactor of the application.java class according to Sonar reports Change-Id: I2117b403c18e2cb2cd902018db951025a1db9bae Issue-ID: CLAMP-54 Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
-rw-r--r--src/main/java/org/onap/clamp/clds/Application.java17
-rw-r--r--src/main/resources/application.properties22
-rw-r--r--src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java88
-rw-r--r--src/test/resources/example/model-properties/modelBpmn.json38
-rw-r--r--src/test/resources/example/model-properties/modelBpmnProp.json188
-rw-r--r--src/test/resources/https/https-test.properties26
6 files changed, 312 insertions, 67 deletions
diff --git a/src/main/java/org/onap/clamp/clds/Application.java b/src/main/java/org/onap/clamp/clds/Application.java
index 4fc68e1d..0304a680 100644
--- a/src/main/java/org/onap/clamp/clds/Application.java
+++ b/src/main/java/org/onap/clamp/clds/Application.java
@@ -36,6 +36,8 @@ import javax.ws.rs.client.ClientBuilder;
import org.apache.camel.component.servlet.CamelHttpTransportServlet;
import org.apache.catalina.connector.Connector;
import org.camunda.bpm.spring.boot.starter.webapp.CamundaBpmWebappAutoConfiguration;
+import org.onap.clamp.clds.model.prop.Holmes;
+import org.onap.clamp.clds.model.prop.ModelProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
@@ -43,6 +45,7 @@ import org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoC
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
@@ -57,8 +60,8 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@ComponentScan(basePackages = { "org.onap.clamp.clds", "com.att.ajsc" })
-@EnableAutoConfiguration(exclude = { CamundaBpmWebappAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
- JpaRepositoriesAutoConfiguration.class, SecurityAutoConfiguration.class,
+@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, CamundaBpmWebappAutoConfiguration.class,
+ HibernateJpaAutoConfiguration.class, JpaRepositoriesAutoConfiguration.class, SecurityAutoConfiguration.class,
ManagementWebSecurityAutoConfiguration.class })
@EnableAsync
public class Application extends SpringBootServletInitializer {
@@ -92,11 +95,19 @@ public class Application extends SpringBootServletInitializer {
return application.sources(Application.class);
}
- public static void main(String[] args) throws Exception {
+ public static void main(String[] args) {
+ // This is to load the system.properties file parameters
SystemPropertiesLoader.addSystemProperties();
+ // This is to initialize some Onap Clamp components
+ initializeComponents();
+ // Start the Spring application
SpringApplication.run(Application.class, args); // NOSONAR
}
+ private static void initializeComponents() {
+ ModelProperties.registerModelElement(Holmes.class, Holmes.getType());
+ }
+
@Bean
public ServletRegistrationBean servletRegistrationBean() {
ServletRegistrationBean registration = new ServletRegistrationBean();
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index a6655783..854fe737 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -64,7 +64,6 @@ server.contextPath=/
#Modified engine-rest applicationpath
spring.jersey.application-path=/engine-rest
spring.profiles.active=clamp-default,clamp-spring-authentication
-spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
#The max number of active threads in this pool
server.tomcat.max-threads=200
@@ -93,34 +92,41 @@ camel.defaultthreadpool.rejectpolicy=CallerRuns
kubernetes.namespace=com-att-ajsc
#server.port=0
-
#Camunda Process Engine DataSource connection Details
spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100
+spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true
spring.datasource.camunda.username=camunda
spring.datasource.camunda.password=ndMSpw4CAM
spring.datasource.camunda.validationQuery=SELECT 1
spring.datasource.camunda.validationQueryTimeout=20000
-spring.datasource.camunda.validationInterval=60000
+spring.datasource.camunda.validationInterval=30000
spring.datasource.camunda.testWhileIdle = true
+spring.datasource.camunda.minIdle = 0
+spring.datasource.camunda.initialSize=0
# Automatically test whether a connection provided is good or not
spring.datasource.camunda.testOnBorrow=true
+spring.datasource.camunda.ignoreExceptionOnPreLoad=true
#Camunda application properties
#Camunda history level
-camunda.bpm.history-level=auto
+camunda.bpm.history-level=none
+camunda.bpm.database.type=mariadb
+camunda.bpm.database.schema-update=false
#clds datasource connection details
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100
+spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true
spring.datasource.cldsdb.username=clds
spring.datasource.cldsdb.password=sidnnd83K
spring.datasource.cldsdb.validationQuery=SELECT 1
spring.datasource.cldsdb.validationQueryTimeout=20000
-spring.datasource.cldsdb.validationInterval=60000
+spring.datasource.cldsdb.validationInterval=30000
spring.datasource.cldsdb.testWhileIdle = true
+spring.datasource.cldsdb.minIdle = 0
+spring.datasource.cldsdb.initialSize=0
# Automatically test whether a connection provided is good or not
spring.datasource.cldsdb.testOnBorrow=true
+spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
#Async Executor default Parameters
async.core.pool.size=10
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
index 22b3ba0c..02e27ea8 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
@@ -24,69 +24,65 @@
package org.onap.clamp.clds.model.prop;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
-import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.onap.clamp.clds.util.ResourceFileUtil;
-
/**
* Test org.onap.clamp.ClampDesigner.model.prop package using ModelProperties.
*/
public class ModelPropertiesTest {
- @Test
- public void testJsonParse() throws IOException {
- String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
- String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
- String modName = "example-model-name";
- String controlName = "example-control-name";
-
- ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);
- Assert.assertEquals(modName, prop.getModelName());
- Assert.assertEquals(controlName, prop.getControlName());
- Assert.assertEquals(null, prop.getActionCd());
- Global global = prop.getGlobal();
- Assert.assertEquals("0f983e18-4603-4bb4-a98c-e29691fb16a1", global.getService());
- Assert.assertEquals("[SNDGCA64]", global.getLocation().toString());
- Assert.assertEquals("[6c7aaec2-59eb-41d9-8681-b7f976ab668d]", global.getResourceVf().toString());
- StringMatch sm = prop.getType(StringMatch.class);
- Assert.assertEquals("StringMatch_", sm.getId());
- Policy policy = prop.getType(Policy.class);
- Assert.assertEquals("Policy_", policy.getId());
- Assert.assertEquals(null, policy.getTopicPublishes());
- Assert.assertEquals(null, policy.getTopicSubscribes());
-
- Tca tca = prop.getType(Tca.class);
- Assert.assertEquals("Narra", tca.getTcaItems().get(0).getTcaName());
- Assert.assertEquals(Integer.valueOf(4), tca.getTcaItems().get(0).getTcaThreshholds().get(0).getThreshhold());
+ @Before
+ public void registerNewClasses() {
+ ModelProperties.registerModelElement(Holmes.class, Holmes.getType());
}
@Test
- public void testPolicy() throws IOException {
+ public void testHolmes() throws IOException {
- String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnPropForPolicy.json");
- System.out.println(modelBpmnProp);
+ String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/modelBpmnProp.json");
+ String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/modelBpmn.json");
+
+ ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
+ modelBpmnProp);
- String modelProp = ResourceFileUtil.getResourceAsString("example/modelPropForPolicy.json");
- System.out.println(modelProp);
- ModelProperties prop = new ModelProperties("example-model-name", "example-control-name",
- null, true, modelBpmnProp, modelProp);
- System.out.println("attempting prop.getGlobal()...");
- Global global = prop.getGlobal();
- System.out.println("attempting prop.getStringMatch()...");
StringMatch stringMatch = prop.getType(StringMatch.class);
- if (stringMatch.isFound()) {
- System.out.println("stringMatch json object is present...");
- assertEquals("1", stringMatch.getResourceGroups().get(0).getPolicyId());
- }
- System.out.println("attempting prop.getPolicy()...");
+ assertTrue(stringMatch.isFound());
+ assertEquals("1505133578560", stringMatch.getResourceGroups().get(0).getGroupNumber());
+ assertEquals("0", stringMatch.getResourceGroups().get(0).getPolicyId());
+ assertEquals(1, stringMatch.getResourceGroups().get(0).getServiceConfigurations().size());
+ List<String> aaiMathcingFields = new ArrayList<String>();
+ aaiMathcingFields.add("complex.city");
+ assertEquals(aaiMathcingFields,
+ stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getaaiMatchingFields());
+ assertEquals("1600", stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getAgeLimit());
+ assertEquals(1, stringMatch.getResourceGroups().get(0).getServiceConfigurations().get(0).getStringSet().size());
+
+ Collector collector = prop.getType(Collector.class);
+ assertTrue(collector.isFound());
+ assertEquals("DCAE-COLLECTOR-UCSNMP", collector.getTopicPublishes());
+
Policy policy = prop.getType(Policy.class);
- if (policy.isFound()) {
- System.out.println("policy json object is present...");
- assertEquals("1", policy.getPolicyChains().get(0).getPolicyId());
- }
+ assertTrue(policy.isFound());
+ assertEquals(1, policy.getPolicyChains().size());
+ assertEquals("0", policy.getPolicyChains().get(0).getPolicyId());
+ assertEquals(1, policy.getPolicyChains().get(0).getPolicyItems().size());
+
+ Tca tca = prop.getType(Tca.class);
+ assertTrue(tca.isFound());
+ assertEquals(1, tca.getTcaItems().size());
+ assertEquals(0, tca.getTcaItems().get(0).getTcaThreshholds().size());
+
+ Holmes holmes = prop.getType(Holmes.class);
+ assertTrue(holmes.isFound());
+ assertEquals("policy1", holmes.getOperationalPolicy());
+ assertEquals("blabla", holmes.getCorrelationLogic());
}
} \ No newline at end of file
diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json
new file mode 100644
index 00000000..4737174c
--- /dev/null
+++ b/src/test/resources/example/model-properties/modelBpmn.json
@@ -0,0 +1,38 @@
+{
+ "collector": [
+ {
+ "id": "Collector_1c72ct5",
+ "from": "StartEvent_1"
+ }
+ ],
+ "stringMatch": [
+ {
+ "id": "StringMatch_05arstl",
+ "from": "Collector_1c72ct5"
+ }
+ ],
+ "policy": [
+ {
+ "id": "Policy_0honxgv",
+ "from": "TCA_1jy9to4"
+ }
+ ],
+ "tca": [
+ {
+ "id": "TCA_1jy9to4",
+ "from": "Holmes_0i4n2mm"
+ }
+ ],
+ "holmes": [
+ {
+ "id": "Holmes_0i4n2mm",
+ "from": "VesCollector_0orydnh"
+ }
+ ],
+ "vesCollector": [
+ {
+ "id": "VesCollector_0orydnh",
+ "from": "StringMatch_05arstl"
+ }
+ ]
+} \ No newline at end of file
diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json
new file mode 100644
index 00000000..7e799aa8
--- /dev/null
+++ b/src/test/resources/example/model-properties/modelBpmnProp.json
@@ -0,0 +1,188 @@
+{
+ "Collector_1c72ct5": [
+ {
+ "name": "topicPublishes",
+ "value": "DCAE-COLLECTOR-UCSNMP"
+ }
+ ],
+ "StringMatch_05arstl": {
+ "group1": [
+ {
+ "name": "rgname",
+ "value": "1505133578560"
+ },
+ {
+ "name": "rgfriendlyname",
+ "value": "group1"
+ },
+ {
+ "name": "policyName",
+ "value": "policy1"
+ },
+ {
+ "name": "policyId",
+ "value": "0"
+ },
+ {
+ "serviceConfigurations": [
+ [
+ {
+ "name": "aaiMatchingFields",
+ "value": [
+ "complex.city"
+ ]
+ },
+ {
+ "name": "aaiSendFields",
+ "value": [
+ "cloud-region.identity-url"
+ ]
+ },
+ {
+ "name": "timeWindow",
+ "value": [
+ "0"
+ ]
+ },
+ {
+ "name": "ageLimit",
+ "value": [
+ "1600"
+ ]
+ },
+ {
+ "name": "createClosedLoopEventId",
+ "value": [
+ "Initial"
+ ]
+ },
+ {
+ "name": "outputEventName",
+ "value": [
+ ""
+ ]
+ },
+ {
+ "stringSet": [
+ {
+
+ },
+ {
+ "name": "eventSeverity",
+ "value": [
+ "NORMAL"
+ ]
+ },
+ {
+ "name": "eventSourceType",
+ "value": [
+ ""
+ ]
+ }
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ },
+ "Policy_0honxgv": {
+ "policy1": [
+ {
+ "name": "pname",
+ "value": "policy1"
+ },
+ {
+ "name": "pid",
+ "value": "0"
+ },
+ {
+ "name": "timeout",
+ "value": "345"
+ },
+ {
+ "policyConfigurations": [
+ [
+ {
+ "name": "maxRetries",
+ "value": [
+ "3"
+ ]
+ },
+ {
+ "name": "retryTimeLimit",
+ "value": [
+ "180"
+ ]
+ },
+ {
+ "name": "_id",
+ "value": [
+ "dGLuNqg"
+ ]
+ },
+ {
+ "name": "parentPolicy",
+ "value": [
+ ""
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ },
+ "TCA_1jy9to4": {
+ "tca1": [
+ {
+ "name": "tname",
+ "value": "tca1"
+ },
+ {
+ "name": "tuuid",
+ "value": "f43e3499-8c9c-teed-bb41-a0cb38ebf0d3"
+ },
+ {
+ "name": "tnfc",
+ "value": ""
+ },
+ {
+ "name": "tcaEnab",
+ "value": "on"
+ },
+ {
+ "name": "tcaPol",
+ "value": "policy1"
+ },
+ {
+ "name": "tcaPolId",
+ "value": "0"
+ },
+ {
+ "name": "tcaInt",
+ "value": "1"
+ },
+ {
+ "name": "tcaSev",
+ "value": "NORMAL"
+ },
+ {
+ "name": "tcaVio",
+ "value": "1"
+ },
+ {
+ "serviceConfigurations": []
+ }
+ ]
+ },
+ "Holmes_0i4n2mm": [
+ {
+ "name": "correlationalLogic",
+ "value": "blabla"
+ },
+ {
+ "name": "operationalPolicy",
+ "value": "policy1"
+ }
+ ]
+} \ No newline at end of file
diff --git a/src/test/resources/https/https-test.properties b/src/test/resources/https/https-test.properties
index b30f6aaf..d34f028a 100644
--- a/src/test/resources/https/https-test.properties
+++ b/src/test/resources/https/https-test.properties
@@ -64,7 +64,6 @@ server.contextPath=/
#Modified engine-rest applicationpath
spring.jersey.application-path=/engine-rest
spring.profiles.active=clamp-default,clamp-spring-authentication
-spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
#The max number of active threads in this pool
server.tomcat.max-threads=200
@@ -93,35 +92,42 @@ camel.defaultthreadpool.rejectpolicy=CallerRuns
kubernetes.namespace=com-att-ajsc
#server.port=0
-
#Camunda Process Engine DataSource connection Details
-spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100
+spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.camunda.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true
spring.datasource.camunda.username=camunda
spring.datasource.camunda.password=ndMSpw4CAM
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.camunda.validationQuery=SELECT 1
spring.datasource.camunda.validationQueryTimeout=20000
-spring.datasource.camunda.validationInterval=60000
+spring.datasource.camunda.validationInterval=30000
spring.datasource.camunda.testWhileIdle = true
+spring.datasource.camunda.minIdle = 0
+spring.datasource.camunda.initialSize=0
# Automatically test whether a connection provided is good or not
spring.datasource.camunda.testOnBorrow=true
+spring.datasource.camunda.ignoreExceptionOnPreLoad=true
+
#Camunda application properties
#Camunda history level
-camunda.bpm.history-level=auto
+camunda.bpm.history-level=none
+camunda.bpm.database.type=mariadb
+camunda.bpm.database.schema-update=false
#clds datasource connection details
-spring.datasource.cldsdb.driver-class-name=org.mariadb.jdbc.Driver
-spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100
+spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
+spring.datasource.cldsdb.url=jdbc:mariadb://localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true
spring.datasource.cldsdb.username=clds
spring.datasource.cldsdb.password=sidnnd83K
-spring.datasource.cldsdb.driverClassName=com.mysql.jdbc.Driver
spring.datasource.cldsdb.validationQuery=SELECT 1
spring.datasource.cldsdb.validationQueryTimeout=20000
-spring.datasource.cldsdb.validationInterval=60000
+spring.datasource.cldsdb.validationInterval=30000
spring.datasource.cldsdb.testWhileIdle = true
+spring.datasource.cldsdb.minIdle = 0
+spring.datasource.cldsdb.initialSize=0
# Automatically test whether a connection provided is good or not
spring.datasource.cldsdb.testOnBorrow=true
+spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
#Async Executor default Parameters
async.core.pool.size=10