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