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
10 * * http://www.apache.org/licenses/LICENSE-2.0
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.
18 * * SPDX-License-Identifier: Apache-2.0
19 * * ============LICENSE_END=========================================================
23 package org.openecomp.sdc.be.components.impl;
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;
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;
58 public class DistributionMonitoringBusinessLogicTest extends BaseBusinessLogicMock {
62 private String ditributionId;
63 private String serviceId;
65 private DistributionMonitoringBusinessLogic businessLogic;
68 private AuditCassandraDao cassandraDao;
71 private UserValidations userValidations;
74 private ComponentsUtils componentsUtils;
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);
87 ditributionId = "did";
88 serviceId = "serviceId";
90 when(userValidations.validateUserExists(Mockito.eq(uId), eq(ditributionId), anyBoolean()))
95 public void testGetListOfDistribution_givenInvalidDistributionId_thenReturnsError() {
96 when(cassandraDao.getListOfDistributionStatuses(ditributionId))
97 .thenReturn(Either.right(ActionStatus.DISTRIBUTION_NOT_FOUND));
99 assertTrue(businessLogic.getListOfDistributionStatus(ditributionId, uId).isRight());
103 public void testGetListOfDistribution_givenValidDistributionId_thenReturnsSuccessful() {
105 List<DistributionStatusEvent> distributionEvents = new ArrayList<>();
106 DistributionStatusEvent event = new DistributionStatusEvent();
107 distributionEvents.add(event);
109 when(cassandraDao.getListOfDistributionStatuses(ditributionId))
110 .thenReturn(Either.left(distributionEvents));
112 Either<DistributionStatusListResponse, ResponseFormat> result = businessLogic.getListOfDistributionStatus(ditributionId, uId);
114 assertTrue(result.isLeft());
115 assertEquals(1, result.left().value().getDistributionStatusList().size());
119 public void testGetDistributionServiceStatus_givenInvalidServiceIdId_thenReturnsError() {
121 when(cassandraDao.getServiceDistributionStatusesList(serviceId))
122 .thenReturn(Either.right(ActionStatus.DISTRIBUTION_NOT_FOUND));
123 assertTrue(businessLogic.getListOfDistributionServiceStatus(serviceId, uId).isRight());
127 public void testGetDistributionServiceStatus_givenValidServiceId_thenReturnsSuccessful() {
129 List<AuditingGenericEvent> serviceEvents = new ArrayList<>();
130 AuditingGenericEvent event1 = new AuditingGenericEvent();
131 AuditingGenericEvent event2 = new AuditingGenericEvent();
133 Map<String, Object> event1Fields = new HashMap<>();
134 Map<String, Object> event2Fields = new HashMap<>();
136 event1Fields.put("DID", "event1");
137 event1Fields.put("ACTION", "DRequest");
138 event1Fields.put("STATUS", "200");
139 event1Fields.put("MODIFIER", uId);
141 event2Fields.put("DID", "event2");
142 event2Fields.put("ACTION", "DNotify");
143 event2Fields.put("STATUS", "200");
144 event2Fields.put("MODIFIER", uId);
146 event1.setFields(event1Fields);
147 event2.setFields(event2Fields);
149 serviceEvents.add(event1);
150 serviceEvents.add(event2);
152 when(cassandraDao.getServiceDistributionStatusesList(serviceId))
153 .thenReturn(Either.left(serviceEvents));
155 assertTrue(businessLogic.getListOfDistributionServiceStatus(serviceId, uId).isLeft());