Autowired annotation for catalog-be
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / impl / DistributionMonitoringBusinessLogicTest.java
1 /*
2  * -
3  *  * ============LICENSE_START=======================================================
4  *  *  Copyright (C) 2019  Nordix Foundation.
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
9  *  *
10  *  *      http://www.apache.org/licenses/LICENSE-2.0
11  *  *
12  *  * Unless required by applicable law or agreed to in writing, software
13  *  * distributed under the License is distributed on an "AS IS" BASIS,
14  *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  * See the License for the specific language governing permissions and
16  *  * limitations under the License.
17  *  *
18  *  * SPDX-License-Identifier: Apache-2.0
19  *  * ============LICENSE_END=========================================================
20  *
21  */
22
23 package org.openecomp.sdc.be.components.impl;
24
25 import fj.data.Either;
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.mockito.InjectMocks;
29 import org.mockito.Mock;
30 import org.mockito.Mockito;
31 import org.mockito.MockitoAnnotations;
32 import org.openecomp.sdc.be.components.validation.UserValidations;
33 import org.openecomp.sdc.be.dao.api.ActionStatus;
34 import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao;
35 import org.openecomp.sdc.be.impl.ComponentsUtils;
36 import org.openecomp.sdc.be.info.DistributionStatusListResponse;
37 import org.openecomp.sdc.be.model.User;
38 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation;
39 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
40 import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation;
41 import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
42 import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
43 import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
44 import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent;
45 import org.openecomp.sdc.be.resources.data.auditing.DistributionStatusEvent;
46 import org.openecomp.sdc.exception.ResponseFormat;
47 import java.util.ArrayList;
48 import java.util.HashMap;
49 import java.util.List;
50 import java.util.Map;
51
52 import static org.junit.Assert.assertEquals;
53 import static org.junit.Assert.assertTrue;
54 import static org.mockito.ArgumentMatchers.anyBoolean;
55 import static org.mockito.ArgumentMatchers.eq;
56 import static org.mockito.Mockito.when;
57
58 public class DistributionMonitoringBusinessLogicTest extends BaseBusinessLogicMock {
59
60     private String uId;
61     private User user;
62     private String ditributionId;
63     private String serviceId;
64
65     private DistributionMonitoringBusinessLogic businessLogic;
66
67     @Mock
68     private AuditCassandraDao cassandraDao;
69
70     @Mock
71     private UserValidations userValidations;
72
73     @Mock
74     private ComponentsUtils componentsUtils;
75
76     @Before
77     public void setUp() {
78         MockitoAnnotations.initMocks(this);
79         businessLogic = new DistributionMonitoringBusinessLogic(elementDao, groupOperation, groupInstanceOperation,
80             groupTypeOperation, interfaceOperation, interfaceLifecycleTypeOperation,
81             cassandraDao, artifactToscaOperation);
82         businessLogic.setUserValidations(userValidations);
83         businessLogic.setComponentsUtils(componentsUtils);
84
85         user = new User();
86         uId = "userId";
87         ditributionId = "did";
88         serviceId = "serviceId";
89
90         when(userValidations.validateUserExists(Mockito.eq(uId), eq(ditributionId), anyBoolean()))
91                 .thenReturn(user);
92     }
93
94     @Test
95     public void testGetListOfDistribution_givenInvalidDistributionId_thenReturnsError() {
96         when(cassandraDao.getListOfDistributionStatuses(ditributionId))
97                 .thenReturn(Either.right(ActionStatus.DISTRIBUTION_NOT_FOUND));
98
99         assertTrue(businessLogic.getListOfDistributionStatus(ditributionId, uId).isRight());
100     }
101
102     @Test
103     public void testGetListOfDistribution_givenValidDistributionId_thenReturnsSuccessful() {
104
105         List<DistributionStatusEvent> distributionEvents = new ArrayList<>();
106         DistributionStatusEvent event = new DistributionStatusEvent();
107         distributionEvents.add(event);
108
109         when(cassandraDao.getListOfDistributionStatuses(ditributionId))
110                 .thenReturn(Either.left(distributionEvents));
111
112         Either<DistributionStatusListResponse, ResponseFormat> result = businessLogic.getListOfDistributionStatus(ditributionId, uId);
113
114         assertTrue(result.isLeft());
115         assertEquals(1, result.left().value().getDistributionStatusList().size());
116     }
117
118     @Test
119     public void testGetDistributionServiceStatus_givenInvalidServiceIdId_thenReturnsError() {
120
121         when(cassandraDao.getServiceDistributionStatusesList(serviceId))
122                 .thenReturn(Either.right(ActionStatus.DISTRIBUTION_NOT_FOUND));
123         assertTrue(businessLogic.getListOfDistributionServiceStatus(serviceId, uId).isRight());
124     }
125
126     @Test
127     public void testGetDistributionServiceStatus_givenValidServiceId_thenReturnsSuccessful() {
128
129         List<AuditingGenericEvent> serviceEvents = new ArrayList<>();
130         AuditingGenericEvent event1 = new AuditingGenericEvent();
131         AuditingGenericEvent event2 = new AuditingGenericEvent();
132
133         Map<String, Object> event1Fields = new HashMap<>();
134         Map<String, Object> event2Fields = new HashMap<>();
135
136         event1Fields.put("DID", "event1");
137         event1Fields.put("ACTION", "DRequest");
138         event1Fields.put("STATUS", "200");
139         event1Fields.put("MODIFIER", uId);
140
141         event2Fields.put("DID", "event2");
142         event2Fields.put("ACTION", "DNotify");
143         event2Fields.put("STATUS", "200");
144         event2Fields.put("MODIFIER", uId);
145
146         event1.setFields(event1Fields);
147         event2.setFields(event2Fields);
148
149         serviceEvents.add(event1);
150         serviceEvents.add(event2);
151
152         when(cassandraDao.getServiceDistributionStatusesList(serviceId))
153                 .thenReturn(Either.left(serviceEvents));
154
155         assertTrue(businessLogic.getListOfDistributionServiceStatus(serviceId, uId).isLeft());
156     }
157 }