3 * Copyright (c) 2018 AT&T Intellectual Property.
7 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
19 * Unless required by applicable law or agreed to in writing, software
21 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25 * See the License for the specific language governing permissions and
27 * limitations under the License.
31 package org.openecomp.sdc.be.datamodel;
33 import org.junit.Before;
34 import org.junit.BeforeClass;
35 import org.junit.Test;
36 import org.openecomp.sdc.be.components.impl.GroupTypeBusinessLogic;
37 import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic;
38 import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder;
39 import org.openecomp.sdc.be.components.utils.PolicyDefinitionBuilder;
40 import org.openecomp.sdc.be.components.utils.InputsBuilder;
41 import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder;
42 import org.openecomp.sdc.be.components.utils.ResourceBuilder;
43 import org.openecomp.sdc.be.components.utils.ServiceBuilder;
44 import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter;
45 import org.openecomp.sdc.be.model.GroupDefinition;
46 import org.openecomp.sdc.be.model.PolicyDefinition;
47 import org.openecomp.sdc.be.model.Resource;
48 import org.openecomp.sdc.be.model.Service;
49 import org.openecomp.sdc.be.model.InputDefinition;
50 import org.openecomp.sdc.be.model.PropertyDefinition;
51 import org.openecomp.sdc.be.model.InterfaceDefinition;
52 import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer;
53 import org.openecomp.sdc.be.ui.model.UiComponentMetadata;
54 import org.openecomp.sdc.be.ui.model.UiServiceDataTransfer;
57 import java.util.Arrays;
58 import java.util.Collections;
59 import java.util.List;
62 import static org.assertj.core.api.Assertions.assertThat;
63 import static org.hibernate.validator.internal.util.CollectionHelper.asSet;
64 import static org.mockito.Mockito.mock;
65 import static org.mockito.Mockito.when;
67 public class UiComponentDataConverterTest {
69 private PolicyDefinition policy1, policy2;
70 private GroupDefinition group1, group2;
71 private InputDefinition input1;
72 private PropertyDefinition propertyDef;
73 private InterfaceDefinition interfaceDef;
76 private static GroupTypeBusinessLogic groupTypeBusinessLogic;
77 private static PolicyTypeBusinessLogic policyTypeBusinessLogic;
78 private static UiComponentDataConverter uiComponentDataConverter;
81 public static void initClass() {
82 groupTypeBusinessLogic = mock(GroupTypeBusinessLogic.class);
83 policyTypeBusinessLogic = mock(PolicyTypeBusinessLogic.class);
84 uiComponentDataConverter = new UiComponentDataConverter(groupTypeBusinessLogic, policyTypeBusinessLogic);
88 public void setUp() throws Exception {
89 policy1 = PolicyDefinitionBuilder.create()
95 policy2 = PolicyDefinitionBuilder.create()
100 group1 = GroupDefinitionBuilder.create()
101 .setUniqueId("group1")
105 group2 = GroupDefinitionBuilder.create()
106 .setUniqueId("group2")
111 input1 = InputsBuilder.create()
113 .setPropertyId("inputid")
116 propertyDef = new PropertyDataDefinitionBuilder()
120 .setUniqueId("property1")
127 public void getUiDataTransferFromResourceByParams_groups_allGroups() {
128 Resource resourceWithGroups = buildResourceWithGroups();
129 UiComponentDataTransfer componentDTO1 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("PROPERTIES"));
130 UiComponentDataTransfer componentDTO2 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("properties"));
131 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("groups"));
132 assertThat(componentDTO.getGroups()).isEqualTo(resourceWithGroups.getGroups());
136 public void getUiDataTransferFromResourceByParams_groups_excludedGroups() {
137 Resource resourceWithGroups = buildResourceWithGroups();
138 when(groupTypeBusinessLogic.getExcludedGroupTypes("VFC")).thenReturn(buildExcludedTypesList());
139 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("nonExcludedGroups"));
140 List<GroupDefinition> groups = componentDTO.getGroups();
141 assertThat(groups.size()).isEqualTo(1);
142 assertThat(groups.get(0)).isEqualTo(group2);
146 public void getUiDataTransferFromResourceByParams_policies_noPoliciesForResource() {
147 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(new Resource(), Collections.singletonList("policies"));
148 assertThat(componentDTO.getPolicies()).isEmpty();
152 public void getUiDataTransferFromResourceByParams_All() {
153 Resource resourceWithGroups = buildResourceWithGroups();
154 Resource resourceWithInputs = buildResourceWithInputs();
156 UiComponentDataTransfer componentDTO1 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("PROPERTIES"));
157 UiComponentDataTransfer componentDTO2 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("properties"));
158 UiComponentDataTransfer componentDTO3 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("interfaces"));
159 UiComponentDataTransfer componentDTO4 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("attributes"));
160 UiComponentDataTransfer componentDTO5 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("metadata"));
161 UiComponentDataTransfer componentDTO6 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("derivedFrom"));
162 UiComponentDataTransfer componentDTO7 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("additionalInformation"));
164 UiComponentDataTransfer componentDTO8 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("inputs"));
165 UiComponentDataTransfer componentDTO81 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithInputs, Collections.singletonList("inputs"));
167 UiComponentDataTransfer componentDTO9 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("users"));
168 UiComponentDataTransfer componentDTO10 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("componentInstances"));
169 UiComponentDataTransfer componentDTO11 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("componentInstancesProperties"));
170 UiComponentDataTransfer componentDTO12 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("capabilities"));
171 UiComponentDataTransfer componentDTO13 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("requirements"));
172 UiComponentDataTransfer componentDTO14 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("allVersions"));
173 UiComponentDataTransfer componentDTO15 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("artifacts"));
175 UiComponentDataTransfer componentDTO16 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("interfaces"));
176 UiComponentDataTransfer componentDTO17 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("componentInstancesAttributes"));
177 UiComponentDataTransfer componentDTO18= uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("componentInstancesInputs"));
178 UiComponentDataTransfer componentDTO19 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("toscaArtifacts"));
180 UiComponentDataTransfer componentDTO21= uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("componentInstancesRelations"));
181 UiComponentDataTransfer componentDTO20 = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("deploymentArtifacts"));
183 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("groups"));
184 assertThat(componentDTO.getGroups()).isEqualTo(resourceWithGroups.getGroups());
188 public void getUiDataTransferFromServiceByParams_policies_noPoliciesForResource() {
189 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromServiceByParams(new Service(), Collections.singletonList("policies"));
190 assertThat(componentDTO.getPolicies()).isEmpty();
194 public void getUiDataTransferFromServiceByParams_SERVICE_API_ARTIFACTS() {
195 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromServiceByParams(new Service(), Collections.singletonList("serviceApiArtifacts"));
196 assertThat(componentDTO.getArtifacts()).isNull();
200 public void getUiDataTransferFromServiceByParams_FORWARDING_PATHS() {
201 UiServiceDataTransfer componentDTO = (UiServiceDataTransfer) uiComponentDataConverter.getUiDataTransferFromServiceByParams(new Service(), Collections.singletonList("forwardingPaths"));
202 assertThat(componentDTO.getForwardingPaths()).isEmpty();
206 public void getUiDataTransferFromServiceByParams_METADATA() {
207 UiServiceDataTransfer componentDTO = (UiServiceDataTransfer) uiComponentDataConverter.getUiDataTransferFromServiceByParams(new Service(), Collections.singletonList("metadata"));
208 assertThat(componentDTO.getMetadata().getNamingPolicy()).isEqualTo("");
212 public void getUiDataTransferFromServiceByParams_INTERFACES() {
213 UiServiceDataTransfer componentDTO = (UiServiceDataTransfer) uiComponentDataConverter.getUiDataTransferFromServiceByParams(new Service(), Collections.singletonList("interfaces"));
214 assertThat(componentDTO.getInterfaces()).isEmpty();
218 public void getUiDataTransferFromResourceByParams_policies() {
219 Resource resourceWithPolicies = buildResourceWithPolicies();
220 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithPolicies, Collections.singletonList("policies"));
221 List<PolicyDefinition> expectedPolicies = resourceWithPolicies.resolvePoliciesList();
222 assertThat(componentDTO.getPolicies()).containsExactlyInAnyOrder((PolicyDefinition[]) expectedPolicies.toArray(new PolicyDefinition[expectedPolicies.size()]));
226 public void getUiDataTransferFromServiceByParams_policies() {
227 Service resourceWithPolicies = buildServiceWithPolicies();
228 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromServiceByParams(resourceWithPolicies, Collections.singletonList("policies"));
229 List<PolicyDefinition> expectedPolicies = resourceWithPolicies.resolvePoliciesList();
230 assertThat(componentDTO.getPolicies()).containsExactlyInAnyOrder((PolicyDefinition[]) expectedPolicies.toArray(new PolicyDefinition[expectedPolicies.size()]));
234 public void getUiDataTransferFromResourceByParams_policies_excludedPolicies() {
235 Resource resourceWithPolicies = buildResourceWithPolicies();
236 when(policyTypeBusinessLogic.getExcludedPolicyTypes("VFC")).thenReturn(buildExcludedTypesList());
237 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithPolicies, Collections.singletonList("nonExcludedPolicies"));
238 List<PolicyDefinition> policies = componentDTO.getPolicies();
239 assertThat(policies.size()).isEqualTo(1);
240 assertThat(policies.get(0)).isEqualTo(policy2);
244 public void convertToUiComponentMetadataTestResource() {
245 Resource resourceWithPolicies = buildResourceWithPolicies();
246 when(policyTypeBusinessLogic.getExcludedPolicyTypes("VFC")).thenReturn(buildExcludedTypesList());
247 UiComponentMetadata componentMd = uiComponentDataConverter.convertToUiComponentMetadata(resourceWithPolicies);
248 assertThat(componentMd.getComponentType().getValue()).isEqualTo("Resource");
253 public void convertToUiComponentMetadataTestService() {
254 Service resourceWithPolicies = buildServiceWithPolicies();
255 when(policyTypeBusinessLogic.getExcludedPolicyTypes("VFC")).thenReturn(buildExcludedTypesList());
256 UiComponentMetadata componentMd = uiComponentDataConverter.convertToUiComponentMetadata(resourceWithPolicies);
257 assertThat(componentMd.getComponentType().getValue()).isEqualTo("Service");
261 public void getResourceWithoutGroupsAndPolicies_returnsEmptyLists() {
262 Resource resource = new ResourceBuilder().build();
263 UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource, Arrays.asList("nonExcludedPolicies", "nonExcludedGroups"));
264 List<PolicyDefinition> policies = componentDTO.getPolicies();
265 assertThat(policies.size()).isZero();
266 List<GroupDefinition> groups = componentDTO.getGroups();
267 assertThat(groups.size()).isZero();
270 private Resource buildResourceWithGroups() {
271 return new ResourceBuilder()
277 private Resource buildResourceWithInputs() {
278 return new ResourceBuilder()
283 private Resource buildResourceWithParameter(String field) {
284 ResourceBuilder res = new ResourceBuilder();
287 res.addInput(input1);
290 //res.addProperty(propertyDef);
297 return new ResourceBuilder()
302 private Resource buildResourceWithPolicies() {
303 return new ResourceBuilder()
309 private Service buildServiceWithPolicies() {
310 return new ServiceBuilder()
316 private Set<String> buildExcludedTypesList() {