Sonar Critical Fix
[dcaegen2/analytics/tca.git] / dcae-analytics-tca / src / test / java / org / openecomp / dcae / apod / analytics / tca / processor / TCACEFJsonProcessorTest.java
1 /*\r
2  * ===============================LICENSE_START======================================\r
3  *  dcae-analytics\r
4  * ================================================================================\r
5  *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  *  Licensed under the Apache License, Version 2.0 (the "License");\r
8  *  you may not use this file except in compliance with the License.\r
9  *   You may obtain a copy of the License at\r
10  *\r
11  *          http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  *  Unless required by applicable law or agreed to in writing, software\r
14  *  distributed under the License is distributed on an "AS IS" BASIS,\r
15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  *  See the License for the specific language governing permissions and\r
17  *  limitations under the License.\r
18  *  ============================LICENSE_END===========================================\r
19  */\r
20 \r
21 package org.openecomp.dcae.apod.analytics.tca.processor;\r
22 \r
23 import org.junit.Test;\r
24 import org.openecomp.dcae.apod.analytics.common.exception.MessageProcessingException;\r
25 import org.openecomp.dcae.apod.analytics.model.domain.cef.EventListener;\r
26 import org.openecomp.dcae.apod.analytics.tca.BaseAnalyticsTCAUnitTest;\r
27 \r
28 import static org.junit.Assert.assertFalse;\r
29 import static org.junit.Assert.assertNotNull;\r
30 \r
31 /**\r
32  *\r
33  * @author Rajiv Singla . Creation Date: 11/9/2016.\r
34  */\r
35 public class TCACEFJsonProcessorTest extends BaseAnalyticsTCAUnitTest {\r
36 \r
37 \r
38     // A valid CEF Message\r
39     @Test\r
40     public void testCEFJsonProcessorWithValidCEFMessage() throws Exception {\r
41 \r
42         final String cefMessageString = fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);\r
43         final TCACEFProcessorContext tcacefProcessorContext =\r
44                 new TCACEFProcessorContext(cefMessageString, getSampleTCAPolicy());\r
45 \r
46         TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();\r
47         final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);\r
48 \r
49         final EventListener cefEventListener = finalProcessorContext.getCEFEventListener();\r
50 \r
51         assertNotNull("CEF Event Listener must be present", cefEventListener);\r
52 \r
53     }\r
54 \r
55     // Even if message is not a valid CEF format but still a Json - Json Processor will parse it\r
56     @Test\r
57     public void testCEFJsonProcessorWithValidJson() throws Exception {\r
58 \r
59         final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(\r
60                 " { \"key\" : \"value\" } ", getSampleTCAPolicy());\r
61 \r
62         TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();\r
63         final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);\r
64         final EventListener cefEventListener = finalProcessorContext.getCEFEventListener();\r
65 \r
66         assertNotNull("Even if message is not a valid CEF format but a valid Json.Json Processor must be able to " +\r
67                         "parse it",\r
68                 cefEventListener);\r
69     }\r
70 \r
71     @Test(expected = MessageProcessingException.class)\r
72     public void testCEFJsonProcessorWithCEFMessageAsNull() throws Exception {\r
73 \r
74         final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(null, getSampleTCAPolicy());\r
75 \r
76         TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();\r
77         tcacefJsonProcessor.apply(tcacefProcessorContext);\r
78 \r
79     }\r
80 \r
81     @Test\r
82     public void testCEFJsonProcessorWithCEFMessageIsBlank() throws Exception {\r
83 \r
84         final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext("   ", getSampleTCAPolicy());\r
85 \r
86         TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();\r
87         final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);\r
88         assertFalse("Blank message must terminate processing of message chain", finalProcessorContext\r
89                 .canProcessingContinue());\r
90     }\r
91 \r
92 \r
93     @Test\r
94     public void testCEFJsonProcessorWithCEFMessageWhichIsNotValidMessage() throws Exception {\r
95 \r
96         final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(" Invalid Message ",\r
97                 getSampleTCAPolicy());\r
98 \r
99         TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();\r
100         final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);\r
101         assertFalse("Invalid message must terminate processing of message chain", finalProcessorContext\r
102                 .canProcessingContinue());\r
103     }\r
104 \r
105 \r
106     @Test(expected = MessageProcessingException.class)\r
107     public void testCEFJsonProcessorWithCEFMessageWhichIsNotValidJson() throws Exception {\r
108 \r
109         final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(\r
110                 " { \"Invalid Event Listener Json\" } ", getSampleTCAPolicy());\r
111 \r
112         TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();\r
113         tcacefJsonProcessor.apply(tcacefProcessorContext);\r
114     }\r
115 \r
116 \r
117 }\r