2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2022 Nordix Foundation
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 * SPDX-License-Identifier: Apache-2.0
17 * ============LICENSE_END=========================================================
22 package org.openecomp.sdcrests.vsp.rest.services;
24 import org.apache.http.HttpStatus;
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Test;
27 import org.mockito.ArgumentMatchers;
28 import org.mockito.Mock;
29 import org.openecomp.core.util.UniqueValueUtil;
30 import org.openecomp.sdc.activitylog.ActivityLogManager;
31 import org.openecomp.sdc.itempermissions.PermissionsManager;
32 import org.openecomp.sdc.notification.services.NotificationPropagationManager;
33 import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
34 import org.openecomp.sdc.versioning.AsdcItemManager;
35 import org.openecomp.sdc.versioning.VersioningManager;
36 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
37 import org.openecomp.sdc.versioning.types.Item;
38 import org.openecomp.sdc.versioning.types.ItemStatus;
40 import javax.ws.rs.core.Response;
41 import java.util.List;
42 import java.util.UUID;
44 import static org.junit.jupiter.api.Assertions.assertEquals;
45 import static org.junit.jupiter.api.Assertions.assertNull;
46 import static org.mockito.ArgumentMatchers.any;
47 import static org.mockito.Mockito.when;
48 import static org.mockito.MockitoAnnotations.openMocks;
49 import static org.openecomp.sdc.common.errors.Messages.DELETE_VSP_ERROR;
51 class VendorSoftwareProductsImplTest {
53 private final String vspId = UUID.randomUUID().toString();
54 private final String user = "cs0008";
57 private AsdcItemManager itemManager;
59 private PermissionsManager permissionsManager;
61 private VersioningManager versioningManager;
63 private VendorSoftwareProductManager vendorSoftwareProductManager;
65 private ActivityLogManager activityLogManager;
67 private NotificationPropagationManager notificationPropagationManager;
69 private UniqueValueUtil uniqueValueUtil;
71 private VendorSoftwareProductsImpl vendorSoftwareProducts;
77 vendorSoftwareProducts = new VendorSoftwareProductsImpl(
81 vendorSoftwareProductManager,
83 notificationPropagationManager,
86 Item item = new Item();
90 ArgumentMatchers.eq(vspId))).thenReturn(item);
96 Response rsp = vendorSoftwareProducts.deleteVsp(vspId, user);
97 assertEquals(HttpStatus.SC_OK, rsp.getStatus());
98 assertNull(rsp.getEntity());
102 void deleteCertifiedVsp() {
103 Item item = new Item();
106 item.addVersionStatus(VersionStatus.Certified);
107 when(itemManager.get(
108 ArgumentMatchers.eq(vspId))).thenReturn(item);
110 Response rsp = vendorSoftwareProducts.deleteVsp(vspId, user);
111 assertEquals(HttpStatus.SC_FORBIDDEN, rsp.getStatus());
112 assertEquals(rsp.getEntity().getClass(), Exception.class);
113 assertEquals(((Exception)rsp.getEntity()).getLocalizedMessage(), DELETE_VSP_ERROR.getErrorMessage());
117 void deleteCertifiedArchivedVsp() {
118 Item item = new Item();
121 item.setStatus(ItemStatus.ARCHIVED);
122 item.addVersionStatus(VersionStatus.Certified);
123 when(itemManager.get(
124 ArgumentMatchers.eq(vspId))).thenReturn(item);
125 when(itemManager.list(any())).thenReturn(List.of(item));
126 Response rsp = vendorSoftwareProducts.deleteVsp(vspId, user);
127 assertEquals(HttpStatus.SC_OK, rsp.getStatus());
128 assertNull(rsp.getEntity());