2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 Nordix Foundation
4 * Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.service.engine.event.impl.apexprotocolplugin;
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.assertj.core.api.Assertions.assertThatNoException;
25 import static org.assertj.core.api.Assertions.assertThatThrownBy;
26 import static org.junit.Assert.assertArrayEquals;
27 import static org.junit.Assert.assertSame;
29 import java.util.List;
30 import org.apache.commons.lang3.RandomStringUtils;
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.onap.policy.apex.model.basicmodel.concepts.AxToscaPolicyProcessingStatus;
34 import org.onap.policy.apex.service.engine.event.ApexEvent;
35 import org.onap.policy.apex.service.engine.event.ApexEventException;
36 import org.onap.policy.apex.service.engine.event.ApexEventList;
37 import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
39 public class Apex2ApexEventConverterTest {
40 private Apex2ApexEventConverter converter;
43 public void setUp() throws Exception {
44 converter = new Apex2ApexEventConverter();
48 public void initWithNull() {
49 assertThatThrownBy(() -> converter.init(null))
50 .isInstanceOf(ApexEventRuntimeException.class);
55 assertThatNoException()
56 .isThrownBy(() -> converter.init(new ApexEventProtocolParameters()));
60 public void toApexEventWithNull() {
61 final String eventName = RandomStringUtils.randomAlphanumeric(5);
62 assertThatThrownBy(() -> converter.toApexEvent(eventName, null))
63 .isInstanceOf(ApexEventException.class);
67 public void toApexEventWithNonApexEvent() {
68 final String eventName = RandomStringUtils.randomAlphanumeric(5);
69 assertThatThrownBy(() -> converter.toApexEvent(eventName, new Object()))
70 .isInstanceOf(ApexEventException.class);
74 public void toApexEmptyEvent() throws ApexEventException {
75 final String eventName = RandomStringUtils.randomAlphanumeric(4);
76 final String name = RandomStringUtils.randomAlphanumeric(5);
77 final String version = RandomStringUtils.randomAlphanumeric(6);
78 final String nameSpace = "a" + RandomStringUtils.randomAlphanumeric(7);
79 final String source = RandomStringUtils.randomAlphanumeric(8);
80 final String target = RandomStringUtils.randomAlphanumeric(9);
81 final String toscaPolicyState = AxToscaPolicyProcessingStatus.ENTRY.name();
83 final ApexEvent event = new ApexEvent(name, version, nameSpace, source, target, toscaPolicyState);
84 final List<ApexEvent> result = converter.toApexEvent(eventName, event);
85 assertThat(result).isEmpty();
89 public void toApexEventWithApexAndOtherFields() throws ApexEventException {
90 final String eventName = RandomStringUtils.randomAlphanumeric(4);
91 final String name1 = RandomStringUtils.randomAlphanumeric(5);
92 final String version1 = RandomStringUtils.randomAlphanumeric(6);
93 final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
94 final String source1 = RandomStringUtils.randomAlphanumeric(8);
95 final String target1 = RandomStringUtils.randomAlphanumeric(9);
96 final String toscaPolicyState1 = AxToscaPolicyProcessingStatus.ENTRY.name();
98 final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1, toscaPolicyState1);
100 final String key = RandomStringUtils.randomAlphabetic(3);
101 event.put(key, new Object());
102 final List<ApexEvent> result = converter.toApexEvent(eventName, event);
103 Object[] expected = {event};
104 assertArrayEquals(expected, result.toArray());
108 public void toApexEventWithApexAndList() throws ApexEventException {
109 final String eventName = RandomStringUtils.randomAlphanumeric(4);
110 final String name1 = RandomStringUtils.randomAlphanumeric(5);
111 final String version1 = RandomStringUtils.randomAlphanumeric(6);
112 final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
113 final String source1 = RandomStringUtils.randomAlphanumeric(8);
114 final String target1 = RandomStringUtils.randomAlphanumeric(9);
115 final String toscaPolicyState1 = AxToscaPolicyProcessingStatus.ENTRY.name();
117 final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1, toscaPolicyState1);
119 final ApexEventList eventList = new ApexEventList();
120 eventList.add(event);
122 final String name2 = RandomStringUtils.randomAlphanumeric(15);
123 final String version2 = RandomStringUtils.randomAlphanumeric(16);
124 final String nameSpace2 = "b" + RandomStringUtils.randomAlphanumeric(17);
125 final String source2 = RandomStringUtils.randomAlphanumeric(18);
126 final String target2 = RandomStringUtils.randomAlphanumeric(19);
127 final String toscaPolicyState2 = AxToscaPolicyProcessingStatus.EXIT_SUCCESS.name();
129 final ApexEvent parentEvent = new ApexEvent(name2, version2, nameSpace2, source2, target2, toscaPolicyState2);
130 final String key = RandomStringUtils.randomAlphabetic(3);
131 parentEvent.put(key, eventList);
132 final List<ApexEvent> result = converter.toApexEvent(eventName, parentEvent);
133 Object[] expected = {event};
134 assertArrayEquals(expected, result.toArray());
138 public void toApexEventWithApexAndListAndOtherFields() throws ApexEventException {
139 final String eventName = RandomStringUtils.randomAlphanumeric(4);
140 final String name1 = RandomStringUtils.randomAlphanumeric(5);
141 final String version1 = RandomStringUtils.randomAlphanumeric(6);
142 final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
143 final String source1 = RandomStringUtils.randomAlphanumeric(8);
144 final String target1 = RandomStringUtils.randomAlphanumeric(9);
145 final String toscaPolicyState1 = AxToscaPolicyProcessingStatus.ENTRY.name();
147 final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1, toscaPolicyState1);
149 final ApexEventList eventList = new ApexEventList();
150 eventList.add(event);
152 final String name2 = RandomStringUtils.randomAlphanumeric(15);
153 final String version2 = RandomStringUtils.randomAlphanumeric(16);
154 final String nameSpace2 = "b" + RandomStringUtils.randomAlphanumeric(17);
155 final String source2 = RandomStringUtils.randomAlphanumeric(18);
156 final String target2 = RandomStringUtils.randomAlphanumeric(19);
157 final String toscaPolicyState2 = AxToscaPolicyProcessingStatus.EXIT_FAILURE.name();
159 final ApexEvent parentEvent = new ApexEvent(name2, version2, nameSpace2, source2, target2, toscaPolicyState2);
160 final String key1 = RandomStringUtils.randomAlphabetic(3);
161 final String key2 = RandomStringUtils.randomAlphabetic(2);
162 parentEvent.put(key1, eventList);
163 parentEvent.put(key2, new Object());
164 assertThatThrownBy(() -> converter.toApexEvent(eventName, parentEvent))
165 .isInstanceOf(ApexEventException.class);
169 public void fromApexEventNull() {
170 assertThatThrownBy(() -> converter.fromApexEvent(null))
171 .isInstanceOf(ApexEventException.class);
175 public void fromApexEvent() throws ApexEventException {
176 final String name1 = RandomStringUtils.randomAlphanumeric(5);
177 final String version1 = RandomStringUtils.randomAlphanumeric(6);
178 final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
179 final String source1 = RandomStringUtils.randomAlphanumeric(8);
180 final String target1 = RandomStringUtils.randomAlphanumeric(9);
181 final String toscaPolicyState1 = AxToscaPolicyProcessingStatus.ENTRY.name();
183 final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1, toscaPolicyState1);
185 final Object actual = converter.fromApexEvent(event);
186 assertSame(event, actual);