a0feb99b0b9c54c4eaf5dcd0ffdea6879aa534fd
[dcaegen2/analytics/tca.git] / dcae-analytics-cdap-plugins / src / test / java / org / openecomp / dcae / apod / analytics / cdap / plugins / transform / filter / JsonPathFilterTest.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.cdap.plugins.transform.filter;\r
22 \r
23 import co.cask.cdap.api.data.format.StructuredRecord;\r
24 import co.cask.cdap.api.data.schema.Schema;\r
25 import co.cask.cdap.etl.api.Emitter;\r
26 import co.cask.cdap.etl.api.PipelineConfigurer;\r
27 import co.cask.cdap.etl.api.StageConfigurer;\r
28 import org.junit.Test;\r
29 import org.mockito.ArgumentMatchers;\r
30 import org.mockito.Mockito;\r
31 import org.openecomp.dcae.apod.analytics.cdap.plugins.BaseAnalyticsCDAPPluginsUnitTest;\r
32 \r
33 import java.util.Date;\r
34 \r
35 import static org.mockito.ArgumentMatchers.any;\r
36 import static org.mockito.Mockito.doNothing;\r
37 import static org.mockito.Mockito.mock;\r
38 import static org.mockito.Mockito.times;\r
39 import static org.mockito.Mockito.verify;\r
40 import static org.mockito.Mockito.when;\r
41 \r
42 /**\r
43  * @author Rajiv Singla . Creation Date: 3/3/2017.\r
44  */\r
45 public class JsonPathFilterTest extends BaseAnalyticsCDAPPluginsUnitTest {\r
46 \r
47 \r
48     @Test\r
49     public void testInitializeWhenFilterMappingIsValid() throws Exception {\r
50         final JsonPathFilter jsonPathFilter = new JsonPathFilter(getJsonPathFilterPluginConfig());\r
51         jsonPathFilter.initialize(null);\r
52     }\r
53 \r
54 \r
55     @Test\r
56     public void configurePipeline() throws Exception {\r
57         final JsonPathFilter jsonPathFilter = new JsonPathFilter(getJsonPathFilterPluginConfig());\r
58         final PipelineConfigurer pipelineConfigurer = mock(PipelineConfigurer.class);\r
59         final StageConfigurer stageConfigurer = mock(StageConfigurer.class);\r
60         when(pipelineConfigurer.getStageConfigurer()).thenReturn(stageConfigurer);\r
61         when(stageConfigurer.getInputSchema()).thenReturn(getSimpleTCAPluginInputSchema());\r
62         doNothing().when(stageConfigurer).setOutputSchema(any(Schema.class));\r
63         jsonPathFilter.configurePipeline(pipelineConfigurer);\r
64         verify(stageConfigurer, times(1)).setOutputSchema(any(Schema.class));\r
65     }\r
66 \r
67     @Test\r
68     public void testTransform() throws Exception {\r
69         final JsonPathFilter jsonPathFilter = new JsonPathFilter(getJsonPathFilterPluginConfig());\r
70         jsonPathFilter.initialize(null);\r
71         final StructuredRecord inputSR = StructuredRecord.builder(getJsonFilterPluginInputSchema())\r
72                 .set("ts", new Date().getTime())\r
73                 .set("responseCode", 200)\r
74                 .set("responseMessage", "OK")\r
75                 .set("message", fromStream(CEF_MESSAGE_JSON_FILE_LOCATION))\r
76                 .build();\r
77 \r
78         final Emitter emitter = Mockito.mock(Emitter.class);\r
79         doNothing().when(emitter).emit(ArgumentMatchers.any(StructuredRecord.class));\r
80         jsonPathFilter.transform(inputSR, emitter);\r
81         verify(emitter, times(1)).emit(any(StructuredRecord.class));\r
82     }\r
83 \r
84 }\r