0ed38a51aacfd46deaf7ea747c9ee61c0b2eeb23
[sdc.git] /
1 package org.openecomp.sdcrests.vsp.rest.services;
2
3 import org.apache.http.HttpStatus;
4 import org.junit.Assert;
5 import org.junit.Before;
6 import org.junit.Test;
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;
25
26 import javax.ws.rs.core.Response;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.UUID;
30
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;
34
35 @RunWith(PowerMockRunner.class)
36 @PrepareForTest({DeploymentFlavorsImpl.class, DeploymentFlavorManagerFactory.class})
37 public class DeploymentFlavorsImplTest {
38
39   private Logger logger = LoggerFactory.getLogger(DeploymentFlavorsImplTest.class);
40
41
42   @Mock
43   private DeploymentFlavorManagerFactory deploymentFlavorManagerFactory;
44
45   @Mock
46   private DeploymentFlavorManager deploymentFlavorManager;
47
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";
52
53   @Before
54   public void setUp() {
55     try {
56       initMocks(this);
57
58       mockStatic(DeploymentFlavorManagerFactory.class);
59       when(DeploymentFlavorManagerFactory.getInstance()).thenReturn(deploymentFlavorManagerFactory);
60       when(deploymentFlavorManagerFactory.createInterface()).thenReturn(deploymentFlavorManager);
61
62       DeploymentFlavorEntity e = new DeploymentFlavorEntity();
63       e.setId(deploymentFlavorId);
64       e.setVspId(vspId);
65       e.setVersion(new Version(versionId));
66
67       Collection<DeploymentFlavorEntity> lst = Collections.singletonList(e);
68       when(deploymentFlavorManager.listDeploymentFlavors(
69               ArgumentMatchers.eq(vspId),
70               ArgumentMatchers.any())).thenReturn(lst);
71
72       when(deploymentFlavorManager.createDeploymentFlavor(
73               ArgumentMatchers.any())).thenReturn(e);
74
75       CompositionEntityResponse<DeploymentFlavor> r = new CompositionEntityResponse<>();
76       r.setId(vspId);
77       when(deploymentFlavorManager.getDeploymentFlavor(
78               ArgumentMatchers.eq(vspId),
79               ArgumentMatchers.any(),
80               ArgumentMatchers.eq(deploymentFlavorId))).thenReturn(r);
81
82       CompositionEntityType tpe = CompositionEntityType.component;
83       CompositionEntityValidationData data = new CompositionEntityValidationData(tpe, vspId);
84       when(deploymentFlavorManager.updateDeploymentFlavor(
85               ArgumentMatchers.any())).thenReturn(data);
86
87
88
89       when(deploymentFlavorManager.getDeploymentFlavorSchema(
90               ArgumentMatchers.eq(vspId),
91               ArgumentMatchers.any())).thenReturn(r);
92
93
94     } catch (Exception e) {
95       logger.error(e.getMessage(), e);
96     }
97   }
98
99   @Test
100   public void testList() {
101     DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl();
102
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());
110   }
111
112   @Test
113   public void testCreate() {
114
115     DeploymentFlavorRequestDto dto = new DeploymentFlavorRequestDto();
116     dto.setDescription("hello");
117     dto.setModel("model");
118     dto.setFeatureGroupId("fgi");
119
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);
125     try {
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());
130     }
131   }
132
133
134   @Test
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());
140   }
141
142
143   @Test
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());
149   }
150
151   @Test
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());
157   }
158
159   @Test
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());
166   }
167
168 }