1 package org.openecomp.sdcrests.vsp.rest.services;
3 import org.apache.http.HttpStatus;
4 import org.junit.Assert;
5 import org.junit.Before;
7 import org.junit.runner.RunWith;
8 import org.mockito.ArgumentMatchers;
9 import org.mockito.Mock;
10 import org.openecomp.sdc.logging.api.Logger;
11 import org.openecomp.sdc.logging.api.LoggerFactory;
12 import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
13 import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
14 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
15 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
16 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
17 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
18 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
19 import org.openecomp.sdc.versioning.dao.types.Version;
20 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorCreationDto;
21 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorRequestDto;
22 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
23 import org.powermock.core.classloader.annotations.PrepareForTest;
24 import org.powermock.modules.junit4.PowerMockRunner;
26 import javax.ws.rs.core.Response;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.UUID;
31 import static org.mockito.MockitoAnnotations.initMocks;
32 import static org.powermock.api.mockito.PowerMockito.mockStatic;
33 import static org.powermock.api.mockito.PowerMockito.when;
35 @RunWith(PowerMockRunner.class)
36 @PrepareForTest({DeploymentFlavorsImpl.class, DeploymentFlavorManagerFactory.class})
37 public class DeploymentFlavorsImplTest {
39 private Logger logger = LoggerFactory.getLogger(DeploymentFlavorsImplTest.class);
43 private DeploymentFlavorManagerFactory deploymentFlavorManagerFactory;
46 private DeploymentFlavorManager deploymentFlavorManager;
48 private final String vspId = UUID.randomUUID().toString();
49 private final String versionId = UUID.randomUUID().toString();
50 private final String deploymentFlavorId = "" + System.currentTimeMillis();
51 private final String user = "cs0008";
58 mockStatic(DeploymentFlavorManagerFactory.class);
59 when(DeploymentFlavorManagerFactory.getInstance()).thenReturn(deploymentFlavorManagerFactory);
60 when(deploymentFlavorManagerFactory.createInterface()).thenReturn(deploymentFlavorManager);
62 DeploymentFlavorEntity e = new DeploymentFlavorEntity();
63 e.setId(deploymentFlavorId);
65 e.setVersion(new Version(versionId));
67 Collection<DeploymentFlavorEntity> lst = Collections.singletonList(e);
68 when(deploymentFlavorManager.listDeploymentFlavors(
69 ArgumentMatchers.eq(vspId),
70 ArgumentMatchers.any())).thenReturn(lst);
72 when(deploymentFlavorManager.createDeploymentFlavor(
73 ArgumentMatchers.any())).thenReturn(e);
75 CompositionEntityResponse<DeploymentFlavor> r = new CompositionEntityResponse<>();
77 when(deploymentFlavorManager.getDeploymentFlavor(
78 ArgumentMatchers.eq(vspId),
79 ArgumentMatchers.any(),
80 ArgumentMatchers.eq(deploymentFlavorId))).thenReturn(r);
82 CompositionEntityType tpe = CompositionEntityType.component;
83 CompositionEntityValidationData data = new CompositionEntityValidationData(tpe, vspId);
84 when(deploymentFlavorManager.updateDeploymentFlavor(
85 ArgumentMatchers.any())).thenReturn(data);
89 when(deploymentFlavorManager.getDeploymentFlavorSchema(
90 ArgumentMatchers.eq(vspId),
91 ArgumentMatchers.any())).thenReturn(r);
94 } catch (Exception e) {
95 logger.error(e.getMessage(), e);
100 public void testList() {
101 DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl();
103 Response rsp = dfi.list(vspId, versionId, user);
104 Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus());
105 Object e = rsp.getEntity();
106 Assert.assertNotNull(e);
107 @SuppressWarnings("unchecked")
108 GenericCollectionWrapper<DeploymentFlavorCreationDto> results = (GenericCollectionWrapper<DeploymentFlavorCreationDto>) e;
109 Assert.assertEquals("result length", 1, results.getListCount());
113 public void testCreate() {
115 DeploymentFlavorRequestDto dto = new DeploymentFlavorRequestDto();
116 dto.setDescription("hello");
117 dto.setModel("model");
118 dto.setFeatureGroupId("fgi");
120 DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl();
121 Response rsp = dfi.create(dto, vspId, versionId, user);
122 Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus());
123 Object e = rsp.getEntity();
124 Assert.assertNotNull(e);
126 DeploymentFlavorCreationDto responseDto = (DeploymentFlavorCreationDto)e;
127 Assert.assertEquals(deploymentFlavorId, responseDto.getDeploymentFlavorId());
128 } catch (ClassCastException ex) {
129 Assert.fail("unexpected class for DTO " + e.getClass().getName());
135 public void testDelete() {
136 DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl();
137 Response rsp = dfi.delete(vspId, versionId, deploymentFlavorId, user);
138 Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus());
139 Assert.assertNull(rsp.getEntity());
144 public void testGet() {
145 DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl();
146 Response rsp = dfi.get(vspId, versionId, deploymentFlavorId, user);
147 Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus());
148 Assert.assertNotNull(rsp.getEntity());
152 public void testGetSchema() {
153 DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl();
154 Response rsp = dfi.get(vspId, versionId, deploymentFlavorId, user);
155 Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus());
156 Assert.assertNotNull(rsp.getEntity());
160 public void testUpdate() {
161 DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl();
162 DeploymentFlavorRequestDto dto = new DeploymentFlavorRequestDto();
163 Response rsp = dfi.update(dto, vspId, versionId, deploymentFlavorId, user);
164 Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus());
165 Assert.assertNull(rsp.getEntity());