2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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 * ================================================================================
23 package org.openecomp.sdc.be.components.impl;
25 import static org.junit.Assert.assertEquals;
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;
39 public class GenericArtifactBrowserBusinessLogicTest extends BaseBusinessLogicMock {
41 private static String content = "event: {presence: required, action: [ any, any, alarm003,RECO-rebuildVnf ],\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"
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"
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"
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"
102 private static String expectedResult = "{\n"
105 + " \"event.presence\": \"required\",\n"
106 + " \"event.action[0]\": \"any\"\n"
109 + " \"event.presence\": \"required\",\n"
110 + " \"event.action[0]\": \"any\"\n"
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);