re base code
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / datamodel / UiComponentDataConverterTest.java
1 package org.openecomp.sdc.be.datamodel;
2
3 import org.junit.Before;
4 import org.junit.BeforeClass;
5 import org.junit.Test;
6 import org.openecomp.sdc.be.components.impl.GroupTypeBusinessLogic;
7 import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic;
8 import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder;
9 import org.openecomp.sdc.be.components.utils.PolicyDefinitionBuilder;
10 import org.openecomp.sdc.be.components.utils.ResourceBuilder;
11 import org.openecomp.sdc.be.components.utils.ServiceBuilder;
12 import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter;
13 import org.openecomp.sdc.be.model.GroupDefinition;
14 import org.openecomp.sdc.be.model.PolicyDefinition;
15 import org.openecomp.sdc.be.model.Resource;
16 import org.openecomp.sdc.be.model.Service;
17 import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer;
18
19 import java.util.Arrays;
20 import java.util.Collections;
21 import java.util.List;
22 import java.util.Set;
23
24 import static org.assertj.core.api.Assertions.assertThat;
25 import static org.hibernate.validator.internal.util.CollectionHelper.asSet;
26 import static org.mockito.Mockito.mock;
27 import static org.mockito.Mockito.when;
28
29 public class UiComponentDataConverterTest {
30
31     private PolicyDefinition policy1, policy2;
32     private GroupDefinition group1, group2;
33     private static GroupTypeBusinessLogic groupTypeBusinessLogic;
34     private static PolicyTypeBusinessLogic policyTypeBusinessLogic;
35     private static UiComponentDataConverter uiComponentDataConverter;
36
37     @BeforeClass
38     public static void initClass() {
39         groupTypeBusinessLogic = mock(GroupTypeBusinessLogic.class);
40         policyTypeBusinessLogic = mock(PolicyTypeBusinessLogic.class);
41         uiComponentDataConverter = new UiComponentDataConverter(groupTypeBusinessLogic, policyTypeBusinessLogic);
42     }
43
44     @Before
45     public void setUp() throws Exception {
46         policy1 = PolicyDefinitionBuilder.create()
47                 .setName("policy1")
48                 .setUniqueId("uid1")
49                 .setType("a")
50                 .build();
51
52         policy2 = PolicyDefinitionBuilder.create()
53                 .setName("policy2")
54                 .setUniqueId("uid2")
55                 .setType("b")
56                 .build();
57         group1 = GroupDefinitionBuilder.create()
58                 .setUniqueId("group1")
59                 .setName("Group 1")
60                 .setType("a")
61                 .build();
62         group2 = GroupDefinitionBuilder.create()
63                 .setUniqueId("group2")
64                 .setName("Group 2")
65                 .setType("b")
66                 .build();
67     }
68
69     @Test
70     public void getUiDataTransferFromResourceByParams_groups_allGroups() {
71         Resource resourceWithGroups = buildResourceWithGroups();
72         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("groups"));
73         assertThat(componentDTO.getGroups()).isEqualTo(resourceWithGroups.getGroups());
74     }
75
76     @Test
77     public void getUiDataTransferFromResourceByParams_groups_excludedGroups() {
78         Resource resourceWithGroups = buildResourceWithGroups();
79         when(groupTypeBusinessLogic.getExcludedGroupTypes("VFC")).thenReturn(buildExcludedTypesList());
80         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithGroups, Collections.singletonList("nonExcludedGroups"));
81         List<GroupDefinition> groups = componentDTO.getGroups();
82         assertThat(groups.size()).isEqualTo(1);
83         assertThat(groups.get(0)).isEqualTo(group2);
84     }
85
86     @Test
87     public void getUiDataTransferFromResourceByParams_policies_noPoliciesForResource() {
88         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(new Resource(), Collections.singletonList("policies"));
89         assertThat(componentDTO.getPolicies()).isEmpty();
90     }
91
92     @Test
93     public void getUiDataTransferFromServiceByParams_policies_noPoliciesForResource() {
94         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromServiceByParams(new Service(), Collections.singletonList("policies"));
95         assertThat(componentDTO.getPolicies()).isEmpty();
96     }
97
98     @Test
99     public void getUiDataTransferFromResourceByParams_policies() {
100         Resource resourceWithPolicies = buildResourceWithPolicies();
101         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithPolicies, Collections.singletonList("policies"));
102         assertThat(componentDTO.getPolicies()).isEqualTo(resourceWithPolicies.resolvePoliciesList());
103     }
104
105     @Test
106     public void getUiDataTransferFromServiceByParams_policies() {
107         Service resourceWithPolicies = buildServiceWithPolicies();
108         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromServiceByParams(resourceWithPolicies, Collections.singletonList("policies"));
109         assertThat(componentDTO.getPolicies()).isEqualTo(resourceWithPolicies.resolvePoliciesList());
110     }
111
112     @Test
113     public void getUiDataTransferFromResourceByParams_policies_excludedPolicies() {
114         Resource resourceWithPolicies = buildResourceWithPolicies();
115         when(policyTypeBusinessLogic.getExcludedPolicyTypes("VFC")).thenReturn(buildExcludedTypesList());
116         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resourceWithPolicies, Collections.singletonList("nonExcludedPolicies"));
117         List<PolicyDefinition> policies = componentDTO.getPolicies();
118         assertThat(policies.size()).isEqualTo(1);
119         assertThat(policies.get(0)).isEqualTo(policy2);
120     }
121
122     @Test
123     public void getResourceWithoutGroupsAndPolicies_returnsEmptyLists() {
124         Resource resource = new ResourceBuilder().build();
125         UiComponentDataTransfer componentDTO = uiComponentDataConverter.getUiDataTransferFromResourceByParams(resource, Arrays.asList("nonExcludedPolicies", "nonExcludedGroups"));
126         List<PolicyDefinition> policies = componentDTO.getPolicies();
127         assertThat(policies.size()).isZero();
128         List<GroupDefinition> groups = componentDTO.getGroups();
129         assertThat(groups.size()).isZero();
130     }
131
132     private Resource buildResourceWithGroups() {
133         return new ResourceBuilder()
134                 .addGroup(group1)
135                 .addGroup(group2)
136                 .build();
137     }
138
139     private Resource buildResourceWithPolicies() {
140         return new ResourceBuilder()
141                 .addPolicy(policy1)
142                 .addPolicy(policy2)
143                 .build();
144     }
145
146     private Service buildServiceWithPolicies() {
147         return new ServiceBuilder()
148                 .addPolicy(policy1)
149                 .addPolicy(policy2)
150                 .build();
151     }
152
153     private Set<String> buildExcludedTypesList() {
154         return asSet("a");
155     }
156
157 }