f817cdf11fdb970964be284d26051c40461e1f18
[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  * Modifications copyright (c) 2019 Nokia
20  * ================================================================================
21  */
22
23 package org.openecomp.sdc.be.components.impl;
24
25 import static org.junit.Assert.assertEquals;
26
27 import com.google.common.collect.ImmutableSet;
28 import java.io.IOException;
29 import org.junit.Test;
30 import org.onap.sdc.gab.model.GABQuery;
31 import org.onap.sdc.gab.model.GABQuery.GABQueryType;
32 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation;
33 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
34 import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation;
35 import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
36 import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
37 import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
38
39 public class GenericArtifactBrowserBusinessLogicTest extends BaseBusinessLogicMock {
40
41     private static String content = "event: {presence: required, action: [ any, any, alarm003,RECO-rebuildVnf ],\n"
42         + "        structure: {\n"
43         + "          commonEventHeader: {presence: required, structure: {\n"
44         + "            domain: {presence: required, value: fault},\n"
45         + "            eventName: {presence: required, value: Fault\\_vMrf\\_alarm003},\n"
46         + "            eventId: {presence: required},\n"
47         + "            nfNamingCode: {value: mrfx},\n"
48         + "            priority: {presence: required, value: Medium},\n"
49         + "            reportingEntityId: {presence: required},\n"
50         + "            reportingEntityName: {presence: required},\n"
51         + "            sequence: {presence: required},\n"
52         + "            sourceId: {presence: required},\n"
53         + "            sourceName: {presence: required},\n"
54         + "            startEpochMicrosec: {presence: required},\n"
55         + "            lastEpochMicrosec: {presence: required},\n"
56         + "            version: {presence: required, value: 3.0}\n"
57         + "          }},\n"
58         + "          faultFields: {presence: required, structure: {\n"
59         + "            alarmCondition: {presence: required, value: alarm003},\n"
60         + "            eventSeverity: {presence: required, value: MAJOR},\n"
61         + "            eventSourceType: {presence: required, value: virtualNetworkFunction},\n"
62         + "            faultFieldsVersion: {presence: required, value: 2.0},\n"
63         + "            specificProblem: {presence: required, value: \"Configuration file was\n"
64         + "                        corrupt or not present\"},\n"
65         + "            vfStatus: {presence: required, value: \"Requesting Termination\"}\n"
66         + "          }}\n"
67         + "        }}\n"
68         + "---\n"
69         + "# registration for clearing Fault\\_vMrf\\_alarm003Cleared\n"
70         + "# Constants: the values of domain, eventName, priority,\n"
71         + "# , version, alarmCondition, eventSeverity, eventSourceType,\n"
72         + "# faultFieldsVersion, specificProblem,\n"
73         + "# Variables (to be supplied at runtime) include: eventId,lastEpochMicrosec,\n"
74         + "# reportingEntityId, reportingEntityName, sequence, sourceId,\n"
75         + "# sourceName, startEpochMicrosec, vfStatus\n"
76         + "event: {presence: required, action: [ any, any, alarm003, Clear ], structure: {\n"
77         + "  commonEventHeader: {presence: required, structure: {\n"
78         + "    domain: {presence: required, value: fault},\n"
79         + "    eventName: {presence: required, value: Fault\\_vMrf\\_alarm003Cleared},\n"
80         + "    eventId: {presence: required},\n"
81         + "    nfNamingCode: {value: mrfx},\n"
82         + "    priority: {presence: required, value: Medium},\n"
83         + "    reportingEntityId: {presence: required},\n"
84         + "    reportingEntityName: {presence: required},\n"
85         + "    sequence: {presence: required},\n"
86         + "    sourceId: {presence: required},\n"
87         + "    sourceName: {presence: required},\n"
88         + "    startEpochMicrosec: {presence: required},\n"
89         + "    lastEpochMicrosec: {presence: required},\n"
90         + "    version: {presence: required, value: 3.0}\n"
91         + "  }},\n"
92         + "  faultFields: {presence: required, structure: {\n"
93         + "    alarmCondition: {presence: required, value: alarm003},\n"
94         + "    eventSeverity: {presence: required, value: NORMAL},\n"
95         + "    eventSourceType: {presence: required, value: virtualNetworkFunction},\n"
96         + "    faultFieldsVersion: {presence: required, value: 2.0},\n"
97         + "    specificProblem: {presence: required, value: \"Valid configuration file found\"},\n"
98         + "    vfStatus: {presence: required, value: \"Requesting Termination\"}\n"
99         + "  }}\n"
100         + "}}";
101
102     private static String expectedResult = "{\n"
103         + "  \"data\": [\n"
104         + "    {\n"
105         + "      \"event.presence\": \"required\",\n"
106         + "      \"event.action[0]\": \"any\"\n"
107         + "    },\n"
108         + "    {\n"
109         + "      \"event.presence\": \"required\",\n"
110         + "      \"event.action[0]\": \"any\"\n"
111         + "    }\n"
112         + "  ]\n"
113         + "}";
114
115     @Test
116     public void testShouldCorrectlyParseResponse() throws IOException {
117         GenericArtifactBrowserBusinessLogic genericArtifactBrowserBusinessLogic = new GenericArtifactBrowserBusinessLogic(
118             elementDao, groupOperation, groupInstanceOperation, groupTypeOperation,
119             interfaceOperation, interfaceLifecycleTypeOperation, artifactToscaOperation);
120         String result = genericArtifactBrowserBusinessLogic.searchFor(
121                 new GABQuery(ImmutableSet.of("event.presence", "event.action[0]"),
122                 content, GABQueryType.CONTENT));
123         assertEquals(result, expectedResult);
124     }
125 }