d57ee97c27fe77c72b3dea364dcce68ee235f292
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 Nokia Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.components.impl;
22
23 import static org.junit.Assert.assertEquals;
24
25 import com.google.common.collect.ImmutableSet;
26 import java.io.IOException;
27 import org.junit.Test;
28 import org.onap.sdc.gab.model.GABQuery;
29 import org.onap.sdc.gab.model.GABQuery.GABQueryType;
30
31 public class GenericArtifactBrowserBusinessLogicTest {
32
33     private static String content = "event: {presence: required, action: [ any, any, alarm003,RECO-rebuildVnf ],\n"
34         + "        structure: {\n"
35         + "          commonEventHeader: {presence: required, structure: {\n"
36         + "            domain: {presence: required, value: fault},\n"
37         + "            eventName: {presence: required, value: Fault\\_vMrf\\_alarm003},\n"
38         + "            eventId: {presence: required},\n"
39         + "            nfNamingCode: {value: mrfx},\n"
40         + "            priority: {presence: required, value: Medium},\n"
41         + "            reportingEntityId: {presence: required},\n"
42         + "            reportingEntityName: {presence: required},\n"
43         + "            sequence: {presence: required},\n"
44         + "            sourceId: {presence: required},\n"
45         + "            sourceName: {presence: required},\n"
46         + "            startEpochMicrosec: {presence: required},\n"
47         + "            lastEpochMicrosec: {presence: required},\n"
48         + "            version: {presence: required, value: 3.0}\n"
49         + "          }},\n"
50         + "          faultFields: {presence: required, structure: {\n"
51         + "            alarmCondition: {presence: required, value: alarm003},\n"
52         + "            eventSeverity: {presence: required, value: MAJOR},\n"
53         + "            eventSourceType: {presence: required, value: virtualNetworkFunction},\n"
54         + "            faultFieldsVersion: {presence: required, value: 2.0},\n"
55         + "            specificProblem: {presence: required, value: \"Configuration file was\n"
56         + "                        corrupt or not present\"},\n"
57         + "            vfStatus: {presence: required, value: \"Requesting Termination\"}\n"
58         + "          }}\n"
59         + "        }}\n"
60         + "---\n"
61         + "# registration for clearing Fault\\_vMrf\\_alarm003Cleared\n"
62         + "# Constants: the values of domain, eventName, priority,\n"
63         + "# , version, alarmCondition, eventSeverity, eventSourceType,\n"
64         + "# faultFieldsVersion, specificProblem,\n"
65         + "# Variables (to be supplied at runtime) include: eventId,lastEpochMicrosec,\n"
66         + "# reportingEntityId, reportingEntityName, sequence, sourceId,\n"
67         + "# sourceName, startEpochMicrosec, vfStatus\n"
68         + "event: {presence: required, action: [ any, any, alarm003, Clear ], structure: {\n"
69         + "  commonEventHeader: {presence: required, structure: {\n"
70         + "    domain: {presence: required, value: fault},\n"
71         + "    eventName: {presence: required, value: Fault\\_vMrf\\_alarm003Cleared},\n"
72         + "    eventId: {presence: required},\n"
73         + "    nfNamingCode: {value: mrfx},\n"
74         + "    priority: {presence: required, value: Medium},\n"
75         + "    reportingEntityId: {presence: required},\n"
76         + "    reportingEntityName: {presence: required},\n"
77         + "    sequence: {presence: required},\n"
78         + "    sourceId: {presence: required},\n"
79         + "    sourceName: {presence: required},\n"
80         + "    startEpochMicrosec: {presence: required},\n"
81         + "    lastEpochMicrosec: {presence: required},\n"
82         + "    version: {presence: required, value: 3.0}\n"
83         + "  }},\n"
84         + "  faultFields: {presence: required, structure: {\n"
85         + "    alarmCondition: {presence: required, value: alarm003},\n"
86         + "    eventSeverity: {presence: required, value: NORMAL},\n"
87         + "    eventSourceType: {presence: required, value: virtualNetworkFunction},\n"
88         + "    faultFieldsVersion: {presence: required, value: 2.0},\n"
89         + "    specificProblem: {presence: required, value: \"Valid configuration file found\"},\n"
90         + "    vfStatus: {presence: required, value: \"Requesting Termination\"}\n"
91         + "  }}\n"
92         + "}}";
93
94     private static String expectedResult = "{\n"
95         + "  \"data\": [\n"
96         + "    {\n"
97         + "      \"event.presence\": \"required\",\n"
98         + "      \"event.action[0]\": \"any\"\n"
99         + "    },\n"
100         + "    {\n"
101         + "      \"event.presence\": \"required\",\n"
102         + "      \"event.action[0]\": \"any\"\n"
103         + "    }\n"
104         + "  ]\n"
105         + "}";
106
107     @Test
108     public void testShouldCorrectlyParseResponse() throws IOException {
109         GenericArtifactBrowserBusinessLogic genericArtifactBrowserBusinessLogic = new GenericArtifactBrowserBusinessLogic();
110         String result = genericArtifactBrowserBusinessLogic.searchFor(
111                 new GABQuery(ImmutableSet.of("event.presence", "event.action[0]"),
112                 content, GABQueryType.CONTENT));
113         assertEquals(result, expectedResult);
114     }
115 }