TCA: Replace any openecomp reference by onap
[dcaegen2/analytics/tca.git] / dcae-analytics-common / src / test / java / org / onap / dcae / apod / analytics / common / service / filter / GenericJsonMessageFilterTest.java
-/*\r
- * ===============================LICENSE_START======================================\r
- *  dcae-analytics\r
- * ================================================================================\r
- *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- *  Licensed under the Apache License, Version 2.0 (the "License");\r
- *  you may not use this file except in compliance with the License.\r
- *   You may obtain a copy of the License at\r
- *\r
- *          http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *  Unless required by applicable law or agreed to in writing, software\r
- *  distributed under the License is distributed on an "AS IS" BASIS,\r
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *  See the License for the specific language governing permissions and\r
- *  limitations under the License.\r
- *  ============================LICENSE_END===========================================\r
- */\r
-\r
-package org.openecomp.dcae.apod.analytics.common.service.filter;\r
-\r
-import com.google.common.collect.ImmutableList;\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.openecomp.dcae.apod.analytics.common.BaseAnalyticsCommonUnitTest;\r
-import org.openecomp.dcae.apod.analytics.common.service.processor.GenericMessageChainProcessor;\r
-\r
-import static org.junit.Assert.assertEquals;\r
-\r
-/**\r
- * @author Rajiv Singla . Creation Date: 2/10/2017.\r
- */\r
-public class GenericJsonMessageFilterTest extends BaseAnalyticsCommonUnitTest {\r
-\r
-    private String jsonMessage;\r
-\r
-    @Before\r
-    public void before() throws Exception {\r
-        jsonMessage = fromStream(CEF_MESSAGE_FILE_PATH);\r
-\r
-    }\r
-\r
-    @Test\r
-    public void testJsonMessageFilterWhenAllFiltersPassed() throws Exception {\r
-\r
-        final JsonMessageFilterProcessorContext finalMessageProcessorContext =\r
-                processJsonMessageFilterChain(jsonMessage,\r
-                        "domainFilter", "$.event.commonEventHeader.domain", "measurementsForVfScaling",\r
-                        "eventNameFilter", "$.event.commonEventHeader.eventName", "Mfvs_eNodeB_RANKPI");\r
-\r
-        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, true, true, 2);\r
-\r
-    }\r
-\r
-    @Test\r
-    public void testJsonMessageFilterWhenJsonPathValueIsANumber() throws Exception {\r
-\r
-        final JsonMessageFilterProcessorContext finalMessageProcessorContext =\r
-                processJsonMessageFilterChain(jsonMessage,\r
-                        "domainFilter", "$.event.commonEventHeader.sequence", "0",\r
-                        "eventNameFilter", "$.event.commonEventHeader.eventName", "Mfvs_eNodeB_RANKPI");\r
-\r
-        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, true, true, 2);\r
-    }\r
-\r
-    @Test\r
-    public void testJsonMessageFilterWhenOneFilterDoesNotMatch() throws Exception {\r
-\r
-        final JsonMessageFilterProcessorContext finalMessageProcessorContext =\r
-                processJsonMessageFilterChain(jsonMessage,\r
-                        "domainFilter", "$.event.commonEventHeader.domain", "xxxxxxxxxxx",\r
-                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");\r
-\r
-        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, false, false, 1);\r
-    }\r
-\r
-    @Test\r
-    public void testJsonMessageFilterWhenJsonPathDoesNotExist() throws Exception {\r
-\r
-        final JsonMessageFilterProcessorContext finalMessageProcessorContext =\r
-                processJsonMessageFilterChain(jsonMessage,\r
-                        "domainFilter", "$.event.commonEventHeader.xxxxxxx", "measurementsForVfScaling",\r
-                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");\r
-\r
-        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, false, false, 1);\r
-    }\r
-\r
-    @Test\r
-    public void testJsonMessageFilterWhenIncomingMessageIsBlank() throws Exception {\r
-\r
-        final JsonMessageFilterProcessorContext finalMessageProcessorContext =\r
-                processJsonMessageFilterChain("",\r
-                        "domainFilter", "$.event.commonEventHeader.domain", "measurementsForVfScaling",\r
-                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");\r
-\r
-        assertJsonMessageAssertions("", finalMessageProcessorContext, false, null, 1);\r
-\r
-    }\r
-\r
-    @Test\r
-    public void testJsonMessageFilterWhenIncomingMessageIsNotValidJson() throws Exception {\r
-\r
-        final JsonMessageFilterProcessorContext finalMessageProcessorContext =\r
-                processJsonMessageFilterChain("invalidJson",\r
-                        "domainFilter", "$.event.commonEventHeader.domain", "measurementsForVfScaling",\r
-                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");\r
-\r
-        assertJsonMessageAssertions("invalidJson", finalMessageProcessorContext, false, null, 1);\r
-\r
-    }\r
-\r
-\r
-    private static void assertJsonMessageAssertions(\r
-            final String jsonMessage, final JsonMessageFilterProcessorContext finalMessageProcessorContext,\r
-            final Boolean canProcessingContinueFlag, final Boolean matchedFlag,\r
-            final int messageProcessorCount) throws Exception {\r
-\r
-        assertJson(jsonMessage, finalMessageProcessorContext.getMessage());\r
-        Assert.assertEquals(canProcessingContinueFlag, finalMessageProcessorContext.canProcessingContinue());\r
-        assertEquals(matchedFlag, finalMessageProcessorContext.getMatched());\r
-        Assert.assertEquals(finalMessageProcessorContext.getMessageProcessors().size(), messageProcessorCount);\r
-\r
-    }\r
-\r
-\r
-    private static JsonMessageFilterProcessorContext processJsonMessageFilterChain(\r
-            final String jsonMessage,\r
-            final String firstFilterName, final String firstFilterPath, final String firstFilterValue,\r
-            final String secondFilterName, final String secondFilterPath, final String secondFilterValue) {\r
-\r
-        // create processors\r
-        final GenericJsonMessageFilter firstFilter = new GenericJsonMessageFilter(firstFilterName, firstFilterPath,\r
-                firstFilterValue);\r
-        final GenericJsonMessageFilter secondFilter = new GenericJsonMessageFilter(secondFilterName,\r
-                secondFilterPath, secondFilterValue);\r
-\r
-        // create initial processor context containing the json message that need to be processed\r
-        final JsonMessageFilterProcessorContext initialProcessorContext =\r
-                new JsonMessageFilterProcessorContext(jsonMessage);\r
-\r
-        // create a generic message chain processor and feed it list of processors and initialProcessor context\r
-        final GenericMessageChainProcessor<JsonMessageFilterProcessorContext> messageChainProcessor =\r
-                new GenericMessageChainProcessor<>(ImmutableList.of(firstFilter, secondFilter),\r
-                        initialProcessorContext);\r
-\r
-        // process the generic message chain\r
-        return messageChainProcessor.processChain();\r
-    }\r
-}\r
+/*
+ * ===============================LICENSE_START======================================
+ *  dcae-analytics
+ * ================================================================================
+ *    Copyright © 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.apod.analytics.common.service.filter;
+
+import com.google.common.collect.ImmutableList;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.dcae.apod.analytics.common.BaseAnalyticsCommonUnitTest;
+import org.onap.dcae.apod.analytics.common.service.processor.GenericMessageChainProcessor;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author Rajiv Singla . Creation Date: 2/10/2017.
+ */
+public class GenericJsonMessageFilterTest extends BaseAnalyticsCommonUnitTest {
+
+    private String jsonMessage;
+
+    @Before
+    public void before() throws Exception {
+        jsonMessage = fromStream(CEF_MESSAGE_FILE_PATH);
+
+    }
+
+    @Test
+    public void testJsonMessageFilterWhenAllFiltersPassed() throws Exception {
+
+        final JsonMessageFilterProcessorContext finalMessageProcessorContext =
+                processJsonMessageFilterChain(jsonMessage,
+                        "domainFilter", "$.event.commonEventHeader.domain", "measurementsForVfScaling",
+                        "eventNameFilter", "$.event.commonEventHeader.eventName", "Mfvs_eNodeB_RANKPI");
+
+        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, true, true, 2);
+
+    }
+
+    @Test
+    public void testJsonMessageFilterWhenJsonPathValueIsANumber() throws Exception {
+
+        final JsonMessageFilterProcessorContext finalMessageProcessorContext =
+                processJsonMessageFilterChain(jsonMessage,
+                        "domainFilter", "$.event.commonEventHeader.sequence", "0",
+                        "eventNameFilter", "$.event.commonEventHeader.eventName", "Mfvs_eNodeB_RANKPI");
+
+        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, true, true, 2);
+    }
+
+    @Test
+    public void testJsonMessageFilterWhenOneFilterDoesNotMatch() throws Exception {
+
+        final JsonMessageFilterProcessorContext finalMessageProcessorContext =
+                processJsonMessageFilterChain(jsonMessage,
+                        "domainFilter", "$.event.commonEventHeader.domain", "xxxxxxxxxxx",
+                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");
+
+        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, false, false, 1);
+    }
+
+    @Test
+    public void testJsonMessageFilterWhenJsonPathDoesNotExist() throws Exception {
+
+        final JsonMessageFilterProcessorContext finalMessageProcessorContext =
+                processJsonMessageFilterChain(jsonMessage,
+                        "domainFilter", "$.event.commonEventHeader.xxxxxxx", "measurementsForVfScaling",
+                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");
+
+        assertJsonMessageAssertions(jsonMessage, finalMessageProcessorContext, false, false, 1);
+    }
+
+    @Test
+    public void testJsonMessageFilterWhenIncomingMessageIsBlank() throws Exception {
+
+        final JsonMessageFilterProcessorContext finalMessageProcessorContext =
+                processJsonMessageFilterChain("",
+                        "domainFilter", "$.event.commonEventHeader.domain", "measurementsForVfScaling",
+                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");
+
+        assertJsonMessageAssertions("", finalMessageProcessorContext, false, null, 1);
+
+    }
+
+    @Test
+    public void testJsonMessageFilterWhenIncomingMessageIsNotValidJson() throws Exception {
+
+        final JsonMessageFilterProcessorContext finalMessageProcessorContext =
+                processJsonMessageFilterChain("invalidJson",
+                        "domainFilter", "$.event.commonEventHeader.domain", "measurementsForVfScaling",
+                        "functionalRoleFilter", "$.event.commonEventHeader.eventName", "vFirewall");
+
+        assertJsonMessageAssertions("invalidJson", finalMessageProcessorContext, false, null, 1);
+
+    }
+
+
+    private static void assertJsonMessageAssertions(
+            final String jsonMessage, final JsonMessageFilterProcessorContext finalMessageProcessorContext,
+            final Boolean canProcessingContinueFlag, final Boolean matchedFlag,
+            final int messageProcessorCount) throws Exception {
+
+        assertJson(jsonMessage, finalMessageProcessorContext.getMessage());
+        Assert.assertEquals(canProcessingContinueFlag, finalMessageProcessorContext.canProcessingContinue());
+        assertEquals(matchedFlag, finalMessageProcessorContext.getMatched());
+        Assert.assertEquals(finalMessageProcessorContext.getMessageProcessors().size(), messageProcessorCount);
+
+    }
+
+
+    private static JsonMessageFilterProcessorContext processJsonMessageFilterChain(
+            final String jsonMessage,
+            final String firstFilterName, final String firstFilterPath, final String firstFilterValue,
+            final String secondFilterName, final String secondFilterPath, final String secondFilterValue) {
+
+        // create processors
+        final GenericJsonMessageFilter firstFilter = new GenericJsonMessageFilter(firstFilterName, firstFilterPath,
+                firstFilterValue);
+        final GenericJsonMessageFilter secondFilter = new GenericJsonMessageFilter(secondFilterName,
+                secondFilterPath, secondFilterValue);
+
+        // create initial processor context containing the json message that need to be processed
+        final JsonMessageFilterProcessorContext initialProcessorContext =
+                new JsonMessageFilterProcessorContext(jsonMessage);
+
+        // create a generic message chain processor and feed it list of processors and initialProcessor context
+        final GenericMessageChainProcessor<JsonMessageFilterProcessorContext> messageChainProcessor =
+                new GenericMessageChainProcessor<>(ImmutableList.of(firstFilter, secondFilter),
+                        initialProcessorContext);
+
+        // process the generic message chain
+        return messageChainProcessor.processChain();
+    }
+}