diff options
author | andre.schmid <andre.schmid@est.tech> | 2021-08-18 14:34:33 +0100 |
---|---|---|
committer | Michael Morris <michael.morris@est.tech> | 2021-08-26 12:13:58 +0000 |
commit | aea64ba99fa9c9b51112b30aeb0872c4cdb89759 (patch) | |
tree | 8645ba4b820f8615e54ecd053f7232c2fcd7dca9 /catalog-model/src/test/java/org/openecomp | |
parent | 5a0703ffad1492ec6b6c78143f63dca83ee030d2 (diff) |
Validate the Resource Model before importing VSP
Validates the Resource Model selected during the Import VSP.
This model must be aligned with one of the models that the
imported VSP relates to.
Fix VSP package retrieval to get the exact version from the
VSP chosen during the Import VSP process.
Introduces a client in the Catalog to retrieve from the
Onboarding backend a VSP information using its Id and
version Id.
Change-Id: Ic8fb52b6daadc0e7203c81a9c15c3e46d5b9fffb
Issue-ID: SDC-3675
Signed-off-by: andre.schmid <andre.schmid@est.tech>
Diffstat (limited to 'catalog-model/src/test/java/org/openecomp')
3 files changed, 193 insertions, 0 deletions
diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/config/ModelOperationsSpringConfig.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/config/ModelOperationsSpringConfig.java index 929441cf01..28e17b5075 100644 --- a/catalog-model/src/test/java/org/openecomp/sdc/be/model/config/ModelOperationsSpringConfig.java +++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/config/ModelOperationsSpringConfig.java @@ -26,6 +26,7 @@ import org.springframework.context.annotation.PropertySource; @Configuration @ComponentScan({"org.openecomp.sdc.be.dao.cassandra", "org.openecomp.sdc.be.model.cache", + "org.openecomp.sdc.be.client", "org.openecomp.sdc.be.model.jsonjanusgraph.operations", "org.openecomp.sdc.be.model.jsonjanusgraph.utils", "org.openecomp.sdc.be.model.jsonjanusgraph.config", diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/mapper/VendorSoftwareProductMapperTest.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/mapper/VendorSoftwareProductMapperTest.java new file mode 100644 index 0000000000..92b4c82376 --- /dev/null +++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/mapper/VendorSoftwareProductMapperTest.java @@ -0,0 +1,80 @@ +/* + * - + * ============LICENSE_START======================================================= + * Copyright (C) 2021 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.be.model.mapper; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Test; +import org.openecomp.sdc.be.model.VendorSoftwareProduct; +import org.openecomp.sdc.be.model.dto.VendorSoftwareProductDto; + +class VendorSoftwareProductMapperTest { + + @Test + void mapFromSuccess() { + final var vendorSoftwareProductDto = new VendorSoftwareProductDto(); + vendorSoftwareProductDto.setName("name"); + vendorSoftwareProductDto.setDescription("description"); + vendorSoftwareProductDto.setCategory("category"); + vendorSoftwareProductDto.setSubCategory("subcategory"); + vendorSoftwareProductDto.setVendorName("vendorName"); + vendorSoftwareProductDto.setVendorId("vendorId"); + vendorSoftwareProductDto.setSelectedModelList(List.of("model1", "model2")); + vendorSoftwareProductDto.setOnboardingMethod("onboardingMethod"); + vendorSoftwareProductDto.setId("id"); + vendorSoftwareProductDto.setVersionId("versionId"); + vendorSoftwareProductDto.setOnboardingOrigin("onboardingOrigin"); + vendorSoftwareProductDto.setNetworkPackageName("packageName"); + final VendorSoftwareProduct vendorSoftwareProduct = VendorSoftwareProductMapper.mapFrom(vendorSoftwareProductDto); + assertVendorSoftwareProduct(vendorSoftwareProduct, vendorSoftwareProductDto); + } + + @Test + void mapFromNullModelListShouldReturnEmptyModelList() { + final var vendorSoftwareProductDto = new VendorSoftwareProductDto(); + vendorSoftwareProductDto.setSelectedModelList(null); + final VendorSoftwareProduct vendorSoftwareProduct = VendorSoftwareProductMapper.mapFrom(vendorSoftwareProductDto); + assertVendorSoftwareProduct(vendorSoftwareProduct, vendorSoftwareProductDto); + } + + private void assertVendorSoftwareProduct(final VendorSoftwareProduct vendorSoftwareProduct, + final VendorSoftwareProductDto vendorSoftwareProductDto) { + assertEquals(vendorSoftwareProduct.getId(), vendorSoftwareProductDto.getId(), "id should be equals"); + assertEquals(vendorSoftwareProduct.getName(), vendorSoftwareProductDto.getName(), "name should be equals"); + assertEquals(vendorSoftwareProduct.getDescription(), vendorSoftwareProductDto.getDescription(), "description should be equals"); + assertEquals(vendorSoftwareProduct.getCategory(), vendorSoftwareProductDto.getCategory(), "category should be equals"); + assertEquals(vendorSoftwareProduct.getSubCategory(), vendorSoftwareProductDto.getSubCategory(), "subCategory should be equals"); + assertEquals(vendorSoftwareProduct.getVendorName(), vendorSoftwareProductDto.getVendorName(), "vendorName should be equals"); + assertEquals(vendorSoftwareProduct.getVendorId(), vendorSoftwareProductDto.getVendorId(), "vendorId should be equals"); + assertEquals(vendorSoftwareProduct.getOnboardingMethod(), vendorSoftwareProductDto.getOnboardingMethod(), "onboardingMethod should be equals"); + assertEquals(vendorSoftwareProduct.getOnboardingOrigin(), vendorSoftwareProductDto.getOnboardingOrigin(), "onboardingOrigin should be equals"); + assertEquals(vendorSoftwareProduct.getVersionId(), vendorSoftwareProductDto.getVersionId(), "versionId should be equals"); + assertEquals(vendorSoftwareProduct.getNetworkPackageName(), vendorSoftwareProductDto.getNetworkPackageName(), "networkPackageName should be equals"); + if (vendorSoftwareProductDto.getSelectedModelList() == null) { + assertTrue(vendorSoftwareProduct.getModelList().isEmpty(), "modelList should be an empty list"); + } else { + assertEquals(vendorSoftwareProduct.getModelList(), vendorSoftwareProductDto.getSelectedModelList(), "modelList should be equals"); + } + } +}
\ No newline at end of file diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/operations/impl/CsarOperationTest.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/operations/impl/CsarOperationTest.java new file mode 100644 index 0000000000..fbed5936da --- /dev/null +++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/operations/impl/CsarOperationTest.java @@ -0,0 +1,112 @@ +/* + * - + * ============LICENSE_START======================================================= + * Copyright (C) 2021 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.be.model.operations.impl; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.when; + +import fj.data.Either; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.client.onboarding.api.OnboardingClient; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.VendorSoftwareProduct; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; + +class CsarOperationTest { + + @Mock + private OnboardingClient onboardingClient; + + @InjectMocks + private CsarOperation csarOperation; + + + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + } + + @Test + void findVspLatestPackageSuccessTest() { + final var csarUuid = "csarUuid"; + var user = new User("userId"); + final Map<String, byte[]> csarFileMap = new HashMap<>(); + csarFileMap.put("test", "test".getBytes(StandardCharsets.UTF_8)); + when(onboardingClient.findLatestPackage(csarUuid, user.getUserId())).thenReturn(Either.left(csarFileMap)); + final Either<Map<String, byte[]>, StorageOperationStatus> vspLatestPackage = csarOperation.findVspLatestPackage(csarUuid, user); + assertTrue(vspLatestPackage.isLeft()); + final Map<String, byte[]> actualCsarFileMap = vspLatestPackage.left().value(); + assertEquals(csarFileMap, actualCsarFileMap); + } + + @Test + void findVspLatestPackage_csarNotFoundTest() { + //given + final var vspId = "vspId"; + var user = new User("userId"); + //when + when(onboardingClient.findLatestPackage(vspId, user.getUserId())).thenReturn(Either.right(StorageOperationStatus.CSAR_NOT_FOUND)); + final Either<Map<String, byte[]>, StorageOperationStatus> vspLatestPackage = csarOperation.findVspLatestPackage(vspId, user); + //then + assertTrue(vspLatestPackage.isRight()); + final StorageOperationStatus storageOperationStatus = vspLatestPackage.right().value(); + assertEquals(StorageOperationStatus.CSAR_NOT_FOUND, storageOperationStatus); + } + + @Test + void findVspSuccessTest() { + //given + final var vspId = "vspId"; + final var vspVersionId = "vspVersionId"; + var user = new User("userId"); + var vendorSoftwareProduct = new VendorSoftwareProduct(); + vendorSoftwareProduct.setId(vspId); + vendorSoftwareProduct.setVersionId(vspVersionId); + //when + when(onboardingClient.findVendorSoftwareProduct(vspId, vspVersionId, user.getUserId())).thenReturn(Optional.of(vendorSoftwareProduct)); + final Optional<VendorSoftwareProduct> vspOptional = csarOperation.findVsp(vspId, vspVersionId, user); + //then + assertTrue(vspOptional.isPresent()); + assertEquals(vendorSoftwareProduct, vspOptional.get()); + } + + @Test + void findVsp_vspNotFoundTest() { + //given + final var vspId = "vspId"; + final var vspVersionId = "vspVersionId"; + var user = new User("userId"); + //when + when(onboardingClient.findVendorSoftwareProduct(vspId, vspVersionId, user.getUserId())).thenReturn(Optional.empty()); + final Optional<VendorSoftwareProduct> vspOptional = csarOperation.findVsp(vspId, vspVersionId, user); + //then + assertTrue(vspOptional.isEmpty()); + } +}
\ No newline at end of file |