From 64dd2f365ce28e8254ba8fa4407dc5d7f192dacf Mon Sep 17 00:00:00 2001 From: VENKATESH KUMAR Date: Tue, 22 Aug 2017 23:36:51 +0100 Subject: dcaegen2 vescollector seedcode Initial seed code delivery for vescollector for support on the gen2dcae platform Issue-ID: DCAEGEN2-52 Change-Id: Id2477eb266f05caf64c67dd809b1ad146ff4fb92 Signed-off-by: VENKATESH KUMAR --- .../org/onap/dcae/vestest/InputJsonValidation.java | 169 +++++++++++++++++++++ .../onap/dcae/vestest/VESCollectorJunitTest.java | 109 +++++++++++++ .../dcae/vestest/VESCollectorJunitTestRunner.java | 52 +++++++ src/test/resources/VES_invalid.txt | 46 ++++++ src/test/resources/VES_valid.txt | 46 ++++++ 5 files changed, 422 insertions(+) create mode 100644 src/test/java/org/onap/dcae/vestest/InputJsonValidation.java create mode 100644 src/test/java/org/onap/dcae/vestest/VESCollectorJunitTest.java create mode 100644 src/test/java/org/onap/dcae/vestest/VESCollectorJunitTestRunner.java create mode 100644 src/test/resources/VES_invalid.txt create mode 100644 src/test/resources/VES_valid.txt (limited to 'src/test') diff --git a/src/test/java/org/onap/dcae/vestest/InputJsonValidation.java b/src/test/java/org/onap/dcae/vestest/InputJsonValidation.java new file mode 100644 index 00000000..0913608a --- /dev/null +++ b/src/test/java/org/onap/dcae/vestest/InputJsonValidation.java @@ -0,0 +1,169 @@ +/*- + * ============LICENSE_START======================================================= + * PROJECT + * ================================================================================ + * Copyright (C) 2017 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.dcae.vestest; +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStreamReader; + +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.junit.Test; +import org.onap.dcae.commonFunction.CommonStartup; + +import com.google.gson.JsonIOException; +import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; + + +public class InputJsonValidation { + + + static String valresult = null; + + + @Test + public void nonvalidJSONValidation(){ + + JSONObject jsonObject = null; + JSONParser parser=new JSONParser(); + Object obj=null; + //String jsonfilepath="C:/Users/vv770d/git/restfulcollector/src/test/resources/fujistu_non_valid_json.txt"; + String jsonfilepath="src/test/resources/VES_invalid.txt"; + String retValue="false"; + try{ + + obj=parser.parse(new FileReader(jsonfilepath)); + + } + catch(Exception e){ + + System.out.println("Exception while opening the file"); + + } + jsonObject=(JSONObject) obj; + + String schema=null; + try { + schema = new JsonParser().parse(new FileReader(VESCollectorJunitTest.schemaFile)).toString(); + //System.out.println("Schema value: " + schema.toString()); + } catch (JsonIOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (JsonSyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + if (schema!=null){ + retValue=CommonStartup.schemavalidate(jsonObject.toString(), schema); + } + //return retValue; + VESCollectorJunitTest.output = retValue; + } + + + // The below test case meant for verifying json schema on provided json file + @Test + public void validJSONValidation(){ + + JSONObject jsonObject = null; + JSONParser parser=new JSONParser(); + Object obj=null; + + String jsonfilepath="src/test/resources/VES_valid.txt"; + String retValue="false"; + try{ + + obj=parser.parse(new FileReader(jsonfilepath)); + + + } + catch(Exception e){ + System.out.println("Exception while opening the file"); + + } + jsonObject=(JSONObject) obj; + String schema=null; + try { + + schema = new JsonParser().parse(new FileReader(VESCollectorJunitTest.schemaFile)).toString(); + } catch (JsonIOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (JsonSyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + if (schema!=null){ + retValue=CommonStartup.schemavalidate(jsonObject.toString(), schema); + } + VESCollectorJunitTest.output = retValue; + //return retValue; + } + + + + //validating valid json reception and its posting to DMAP. + @Test + public void eventReception(){ + + + String testCurlCommand = "curl -i -X POST -d @C:/Users/vv770d/git/restfulcollector/src/test/resources/fujistu-3.txt --header \"Content-Type: application/json\" http://localhost:8080/eventListener/v1"; + + //final Process terminal = curlCommand.start(); + try { + Process p = Runtime.getRuntime().exec(testCurlCommand); + BufferedReader stdInput = new BufferedReader(new + InputStreamReader(p.getInputStream())); + + BufferedReader stdError = new BufferedReader(new + InputStreamReader(p.getErrorStream())); + + // read the output from the command + + String s = null; + while ((s = stdInput.readLine()) != null) { + if (s.contains("HTTP/1.1 200 OK")){ + + //return "true"; + VESCollectorJunitTest.output = "true"; + } + + } + } catch (IOException e) { + // TODO Auto-generated catch block + + + e.printStackTrace(); + } + + //return "false"; + } + +} diff --git a/src/test/java/org/onap/dcae/vestest/VESCollectorJunitTest.java b/src/test/java/org/onap/dcae/vestest/VESCollectorJunitTest.java new file mode 100644 index 00000000..0e737175 --- /dev/null +++ b/src/test/java/org/onap/dcae/vestest/VESCollectorJunitTest.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START======================================================= + * PROJECT + * ================================================================================ + * Copyright (C) 2017 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +/* + * + * Purpose: CommonCollectorJunitTest is the wrapper class to invoke all prescribed Junit test cases. + * + */ +package org.onap.dcae.vestest; +import static org.junit.Assert.assertEquals; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.junit.Test; + +public class VESCollectorJunitTest { + public static String schemaFile=null; + public static String output; + + + + String message = "true"; + InputJsonValidation messageUtil = new InputJsonValidation(); + + @Test + public void validJSONValidation() { + + Properties prop = new Properties(); + InputStream input = null; + output = "true"; + try { + input = new FileInputStream("etc/collector.properties"); + try { + prop.load(input); + schemaFile=prop.getProperty("collector.schema.file"); + + System.out.println( "Schema file location: "+ schemaFile); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + assertEquals(message,output); + } + + + @Test + public void nonvalidJSONValidation() { + output = "false"; + Properties prop = new Properties(); + InputStream input = null; + try { + input = new FileInputStream("etc/collector.properties"); + try { + prop.load(input); + schemaFile=prop.getProperty("collector.schema.file"); + + System.out.println( "Schema file location: "+ schemaFile); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //assertEquals("false",messageUtil.nonvalidJSONValidation()); + assertEquals("false",output); + } + + + //The test case requires common collector running in the environment prior to start execution of JUNIT test cases + /* + @Test + public void testValidJSONObjectReception() { + + + assertEquals("true",messageUtil.eventReception()); + assertEquals("true",output); + }*/ + + + +} diff --git a/src/test/java/org/onap/dcae/vestest/VESCollectorJunitTestRunner.java b/src/test/java/org/onap/dcae/vestest/VESCollectorJunitTestRunner.java new file mode 100644 index 00000000..64a4ff3b --- /dev/null +++ b/src/test/java/org/onap/dcae/vestest/VESCollectorJunitTestRunner.java @@ -0,0 +1,52 @@ +/*- + * ============LICENSE_START======================================================= + * PROJECT + * ================================================================================ + * Copyright (C) 2017 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +/* + * Purpose: CommonCollectorJunitTestRunner is the main class where test suit execution starts its test cases execution + * the common collector test suit has been written in order to incorporate functional and logical testing of collector features + * + */ + +package org.onap.dcae.vestest; +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.RunWith; +import org.junit.runner.notification.Failure; +import org.onap.dcae.commonFunction.CommonStartup; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class VESCollectorJunitTestRunner { + + public static void main(String[] args) { + + System.out.println("STARTING TEST SUITE EXECUTION....."); + + Result result = JUnitCore.runClasses(VESCollectorJunitTest.class); + + for (Failure failure : result.getFailures()) { + System.out.println(failure.toString()); + } + + + System.out.println("Execution Final result : "+result.wasSuccessful()); + } + +} diff --git a/src/test/resources/VES_invalid.txt b/src/test/resources/VES_invalid.txt new file mode 100644 index 00000000..67d638ed --- /dev/null +++ b/src/test/resources/VES_invalid.txt @@ -0,0 +1,46 @@ +{ +"event": { +"commonEventHeader": { +"sourceId": "owb-rdm-003", +"startEpochMicrosec": 1469528413000, +"eventId": "owb-rdm-003 1", +"reportingEntityId": "127.0.1.1", +"eventType": "fault_owb-rdm-003_lossOfSignal", +"priority": "High", +"version": 1.0, +"reportingEntityName": "agilevm", +"sequence": 0, +"domain": "fault", +"functionalRole": "rdm", +"lastEpochMicrosec": 1469528413000, +"test": "Dummy" +}, +"faultFields": { +"eventSeverity": "CRITICAL", +"alarmCondition": "lossOfSignal", +"faultFieldsVersion": 1.0, +"specificProblem": "lossOfSignal", +"alarmInterfaceA": "1/0/0 E1", +"alarmAdditionalInformation": [ +{ +"name": "DIR", +"value": "tx" +}, +{ +"name": "LOC", +"value": "NEND" +}, +{ +"name": "TYPE", +"value": "communication" +}, +{ +"name": "CKTID", +"value": "circuit-1" +} +], +"eventSourceType": "port", +"vfStatus": "Active" +} +} +} diff --git a/src/test/resources/VES_valid.txt b/src/test/resources/VES_valid.txt new file mode 100644 index 00000000..907aaf38 --- /dev/null +++ b/src/test/resources/VES_valid.txt @@ -0,0 +1,46 @@ +{ +"event": { +"commonEventHeader": { +"sourceId": "owb-rdm-003", +"startEpochMicrosec": 1469528413000, +"eventId": "owb-rdm-003 1", +"reportingEntityId": "127.0.1.1", +"eventType": "fault_owb-rdm-003_lossOfSignal", +"priority": "High", +"version": 1.0, +"reportingEntityName": "agilevm", +"sequence": 0, +"domain": "fault", +"functionalRole": "rdm", +"lastEpochMicrosec": 1469528413000, +"sourceName": "owb-rdm-003" +}, +"faultFields": { +"eventSeverity": "CRITICAL", +"alarmCondition": "lossOfSignal", +"faultFieldsVersion": 1.0, +"specificProblem": "lossOfSignal", +"alarmInterfaceA": "1/0/0 E1", +"alarmAdditionalInformation": [ +{ +"name": "DIR", +"value": "tx" +}, +{ +"name": "LOC", +"value": "NEND" +}, +{ +"name": "TYPE", +"value": "communication" +}, +{ +"name": "CKTID", +"value": "circuit-1" +} +], +"eventSourceType": "port", +"vfStatus": "Active" +} +} +} -- cgit 1.2.3-korg