Sync Integ to Master
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / impl / PolicyTypeBusinessLogicTest.java
1 package org.openecomp.sdc.be.components.impl;
2
3 import com.google.common.collect.ImmutableMap;
4 import fj.data.Either;
5 import org.junit.Before;
6 import org.junit.BeforeClass;
7 import org.junit.Test;
8 import org.junit.runner.RunWith;
9 import org.mockito.InjectMocks;
10 import org.mockito.Mock;
11 import org.mockito.junit.MockitoJUnitRunner;
12 import org.openecomp.sdc.be.DummyConfigurationManager;
13 import org.openecomp.sdc.be.components.utils.PolicyTypeBuilder;
14 import org.openecomp.sdc.be.components.validation.UserValidations;
15 import org.openecomp.sdc.be.config.ConfigurationManager;
16 import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
17 import org.openecomp.sdc.be.impl.ComponentsUtils;
18 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
19 import org.openecomp.sdc.be.model.User;
20 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
21 import org.openecomp.sdc.be.model.operations.impl.PolicyTypeOperation;
22 import org.openecomp.sdc.exception.ResponseFormat;
23
24 import java.util.Arrays;
25 import java.util.List;
26 import java.util.Set;
27
28 import static com.google.common.collect.Sets.newHashSet;
29 import static java.util.Collections.emptyList;
30 import static org.assertj.core.api.Assertions.assertThat;
31 import static org.mockito.ArgumentMatchers.any;
32 import static org.mockito.ArgumentMatchers.anyString;
33 import static org.mockito.ArgumentMatchers.eq;
34 import static org.mockito.Mockito.verify;
35 import static org.mockito.Mockito.when;
36
37 @RunWith(MockitoJUnitRunner.class)
38 public class PolicyTypeBusinessLogicTest {
39
40     private static final String USER_ID = "userId";
41     private static final Set<String> EXCLUDED_POLICY_TYPES = newHashSet("type1", "type2");
42     private static final String COMPONENT_TYPE = "VF";
43
44     @InjectMocks
45     private PolicyTypeBusinessLogic testInstance;
46     @Mock
47     private TitanDao titanDao;
48     @Mock
49     private PolicyTypeOperation policyTypeOperation;
50     @Mock
51     private ComponentsUtils componentsUtils;
52     @Mock
53     private UserValidations userValidations;
54
55     @Before
56     public void setUp() throws Exception {
57         when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(true))).thenReturn(Either.left(new User()));
58         when(componentsUtils.convertToResponseFormatOrNotFoundErrorToEmptyList(any(StorageOperationStatus.class))).thenCallRealMethod();
59         when(ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedPolicyTypesMapping()).thenReturn(ImmutableMap.of(COMPONENT_TYPE, EXCLUDED_POLICY_TYPES));
60     }
61
62     @BeforeClass
63     public static void beforeClass() {
64         new DummyConfigurationManager();
65     }
66
67     @Test
68     public void getAllPolicyTypes_userNotExist() {
69         ResponseFormat userNotExistResponse = new ResponseFormat();
70         when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(true))).thenReturn(Either.right(userNotExistResponse));
71         Either<List<PolicyTypeDefinition>, ResponseFormat> allPolicyTypes = testInstance.getAllPolicyTypes(USER_ID, COMPONENT_TYPE);
72         assertThat(allPolicyTypes.right().value()).isSameAs(userNotExistResponse);
73     }
74
75     @Test
76     public void getAllPolicyTypes_whenExcludePolicyTypesSetIsNull_passNullExcludedTypesSet() {
77         when(ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedPolicyTypesMapping()).thenCallRealMethod();
78         when(policyTypeOperation.getAllPolicyTypes(null)).thenReturn(Either.left(emptyList()));
79         Either<List<PolicyTypeDefinition>, ResponseFormat> allPolicyTypes = testInstance.getAllPolicyTypes(USER_ID, COMPONENT_TYPE);
80         assertThat(allPolicyTypes.left().value()).isEmpty();
81     }
82
83     @Test
84     public void getAllPolicyTypes() {
85         List<PolicyTypeDefinition> policyTypes = Arrays.asList(new PolicyTypeBuilder().setUniqueId("id1").build(),
86                 new PolicyTypeBuilder().setUniqueId("id2").build(),
87                 new PolicyTypeBuilder().setUniqueId("id3").build());
88         when(policyTypeOperation.getAllPolicyTypes(EXCLUDED_POLICY_TYPES)).thenReturn(Either.left(policyTypes));
89         Either<List<PolicyTypeDefinition>, ResponseFormat> allPolicyTypes = testInstance.getAllPolicyTypes(USER_ID, COMPONENT_TYPE);
90         assertThat(allPolicyTypes.left().value()).isSameAs(policyTypes);
91     }
92
93     @Test
94     public void getAllPolicyTypes_noPolicyTypes() {
95         when(policyTypeOperation.getAllPolicyTypes(EXCLUDED_POLICY_TYPES)).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
96         Either<List<PolicyTypeDefinition>, ResponseFormat> allPolicyTypes = testInstance.getAllPolicyTypes(USER_ID, COMPONENT_TYPE);
97         assertThat(allPolicyTypes.left().value()).isEmpty();
98         verify(titanDao).commit();
99     }
100
101     @Test
102     public void getAllPolicyTypes_err() {
103         when(policyTypeOperation.getAllPolicyTypes(EXCLUDED_POLICY_TYPES)).thenReturn(Either.right(StorageOperationStatus.GENERAL_ERROR));
104         ResponseFormat errResponse = new ResponseFormat();
105         when(componentsUtils.getResponseFormat(StorageOperationStatus.GENERAL_ERROR)).thenReturn(errResponse);
106         Either<List<PolicyTypeDefinition>, ResponseFormat> allPolicyTypes = testInstance.getAllPolicyTypes(USER_ID, COMPONENT_TYPE);
107         assertThat(allPolicyTypes.right().value()).isSameAs(errResponse);
108         verify(titanDao).commit();
109     }
110 }