2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Modifications Copyright (c) 2020 Nokia
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=========================================================
21 package org.onap.so.bpmn.infrastructure.workflow.tasks;
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.mockito.Mockito.mock;
25 import static org.mockito.Mockito.when;
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.List;
29 import java.util.Optional;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 import org.mockito.InjectMocks;
33 import org.mockito.Mock;
34 import org.mockito.junit.MockitoJUnitRunner;
35 import org.onap.aai.domain.yang.VpnBinding;
36 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
37 import org.onap.aaiclient.client.aai.entities.Relationships;
38 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
39 import org.onap.aaiclient.client.aai.entities.uri.AAISimpleUri;
40 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
42 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
44 @RunWith(MockitoJUnitRunner.class)
45 public class WorkflowActionExtractResourcesAAITest {
47 private static final String CONFIGURATION_ID = "configTestId";
48 private static final String VPN_ID = "vpnTestId";
51 private BBInputSetupUtils bbInputSetupUtils;
53 private WorkflowActionExtractResourcesAAI testedObject;
56 public void extractRelationshipsConfigurationSuccess() {
58 Relationships relationships = mock(Relationships.class);
59 when(relationships.getByType(Types.CONFIGURATION))
60 .thenReturn(getConfigurationList("{\"configuration-id\" : \"" + CONFIGURATION_ID + "\"}"));
62 Optional<Configuration> resultOpt = testedObject.extractRelationshipsConfiguration(relationships);
64 assertThat(resultOpt).isNotEmpty();
65 assertThat(resultOpt.get().getConfigurationId()).isEqualTo(CONFIGURATION_ID);
69 public void extractRelationshipsConfiguration_noConfigurationFoundInList() {
71 Relationships relationships = mock(Relationships.class);
72 when(relationships.getByType(Types.CONFIGURATION)).thenReturn(getConfigurationList("noJson"));
74 Optional<Configuration> resultOpt = testedObject.extractRelationshipsConfiguration(relationships);
76 assertThat(resultOpt).isEmpty();
80 public void extractRelationshipsConfiguration_notFound_listEmpty() {
82 Relationships relationships = mock(Relationships.class);
83 when(relationships.getByType(Types.CONFIGURATION)).thenReturn(Collections.emptyList());
85 Optional<Configuration> resultOpt = testedObject.extractRelationshipsConfiguration(relationships);
87 assertThat(resultOpt).isEmpty();
91 public void extractRelationshipsVpnBindingSuccess() {
93 Relationships relationships = mock(Relationships.class);
94 AAIResourceUri aaiResourceUri = mock(AAISimpleUri.class);
95 List<AAIResourceUri> aaiResourceUriList = new ArrayList<>();
96 aaiResourceUriList.add(aaiResourceUri);
97 when(relationships.getRelatedUris(Types.VPN_BINDING)).thenReturn(aaiResourceUriList);
98 AAIResultWrapper aaiResultWrapper = new AAIResultWrapper("{\"vpn-id\" : \"" + VPN_ID + "\"}");
99 when(bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri)).thenReturn(aaiResultWrapper);
101 Optional<VpnBinding> resultOpt = testedObject.extractRelationshipsVpnBinding(relationships);
103 assertThat(resultOpt).isNotEmpty();
104 assertThat(resultOpt.get().getVpnId()).isEqualTo(VPN_ID);
108 public void extractRelationshipsVpnBinding_noVpnBindingFoundInList() {
110 Relationships relationships = mock(Relationships.class);
111 AAIResourceUri aaiResourceUri = mock(AAISimpleUri.class);
112 List<AAIResourceUri> aaiResourceUriList = new ArrayList<>();
113 aaiResourceUriList.add(aaiResourceUri);
114 when(relationships.getRelatedUris(Types.VPN_BINDING)).thenReturn(aaiResourceUriList);
115 AAIResultWrapper aaiResultWrapper = new AAIResultWrapper("noJson");
116 when(bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri)).thenReturn(aaiResultWrapper);
118 Optional<VpnBinding> resultOpt = testedObject.extractRelationshipsVpnBinding(relationships);
120 assertThat(resultOpt).isEmpty();
124 public void extractRelationshipsVpnBinding_notFound_listEmpty() {
126 Relationships relationships = mock(Relationships.class);
127 when(relationships.getRelatedUris(Types.VPN_BINDING)).thenReturn(Collections.emptyList());
129 Optional<VpnBinding> resultOpt = testedObject.extractRelationshipsVpnBinding(relationships);
131 assertThat(resultOpt).isEmpty();
135 public void extractRelationshipsVnfcSuccess() {
137 Relationships relationships = mock(Relationships.class);
138 when(relationships.getByType(Types.VNFC)).thenReturn(
139 getConfigurationList("{\"relationship-list\": {\"relationship\": [{\"related-to\": \"tenant\"}]}}"));
141 Optional<Relationships> resultOpt = testedObject.extractRelationshipsVnfc(relationships);
143 assertThat(resultOpt).isNotEmpty();
144 assertThat(resultOpt.get().getJson()).isEqualTo("{\"relationship\":[{\"related-to\":\"tenant\"}]}");
148 public void extractRelationshipsVnfc_noRelationFoundList() {
150 Relationships relationships = mock(Relationships.class);
151 when(relationships.getByType(Types.VNFC)).thenReturn(getConfigurationList("{\"jsonWithNoRelation\": {}}"));
153 Optional<Relationships> resultOpt = testedObject.extractRelationshipsVnfc(relationships);
155 assertThat(resultOpt).isEmpty();
159 public void extractRelationshipsVnfc_notFound_listEmpty() {
161 Relationships relationships = mock(Relationships.class);
162 when(relationships.getByType(Types.VNFC)).thenReturn(Collections.emptyList());
164 Optional<Relationships> resultOpt = testedObject.extractRelationshipsVnfc(relationships);
166 assertThat(resultOpt).isEmpty();
169 private List<AAIResultWrapper> getConfigurationList(String json) {
170 List<AAIResultWrapper> configurations = new ArrayList<>();
171 AAIResultWrapper aaiResultWrapper = new AAIResultWrapper(json);
172 configurations.add(aaiResultWrapper);
173 return configurations;