1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
3 import org.mockito.InjectMocks;
4 import org.mockito.Mock;
5 import org.mockito.MockitoAnnotations;
6 import org.mockito.Spy;
7 import org.openecomp.sdc.common.errors.CoreException;
8 import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
10 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
11 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
12 import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
13 import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
14 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
15 import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
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.Nic;
19 import org.openecomp.sdc.versioning.dao.types.Version;
20 import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
21 import org.testng.Assert;
22 import org.testng.annotations.BeforeMethod;
23 import org.testng.annotations.Test;
25 import java.util.Arrays;
26 import java.util.Collection;
28 import static org.mockito.Matchers.anyObject;
29 import static org.mockito.Mockito.doReturn;
30 import static org.mockito.Mockito.never;
31 import static org.mockito.Mockito.verify;
33 public class NicManagerImplTest {
34 private static final String NIC_NOT_EXIST_MSG =
35 "Vendor Software Product NIC with Id nic1 does not exist for Vendor Software Product with " +
36 "id VSP_ID and version 0.1";
38 private static final String USER = "nicTestUser";
39 private static final String VSP_ID = "VSP_ID";
40 private static final Version VERSION = new Version(0, 1);
41 private static final String COMPONENT_ID = "COMPONENT_ID";
42 private static final String NIC1_ID = "nic1";
43 private static final String NIC2_ID = "nic2";
44 private static final String NETWORK1_ID = "network1";
45 private static final String NETWORK2_ID = "network2";
48 private NicDao nicDao;
50 private CompositionEntityDataManager compositionEntityDataManagerMock;
52 private NetworkManager networkManagerMock;
55 private NicManagerImpl nicManager;
58 public void setUp() throws Exception {
59 MockitoAnnotations.initMocks(this);
63 public void testListWhenNone() {
64 Collection<NicEntity> nics = nicManager.listNics(VSP_ID, VERSION, COMPONENT_ID, USER);
65 Assert.assertEquals(nics.size(), 0);
69 public void testList() {
70 doReturn(Arrays.asList(
71 createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID),
72 createNic(VSP_ID, VERSION, COMPONENT_ID, NIC2_ID, NETWORK2_ID)))
73 .when(nicDao).list(anyObject());
75 NetworkEntity network1 = NetworkManagerImplTest.createNetwork(VSP_ID, VERSION, NETWORK1_ID);
76 NetworkEntity network2 = NetworkManagerImplTest.createNetwork(VSP_ID, VERSION, NETWORK2_ID);
77 doReturn(Arrays.asList(network1, network2))
78 .when(networkManagerMock).listNetworks(VSP_ID, VERSION, USER);
80 Collection<NicEntity> nics = nicManager.listNics(VSP_ID, VERSION, COMPONENT_ID, USER);
81 Assert.assertEquals(nics.size(), 2);
82 for (NicEntity nic : nics) {
83 Assert.assertEquals(nic.getNicCompositionData().getNetworkName(),
84 NIC1_ID.equals(nic.getId())
85 ? network1.getNetworkCompositionData().getName()
86 : network2.getNetworkCompositionData().getName());
90 // @Test(dependsOnMethods = "testListWhenNone")
91 // public void testCreate() {
92 // NIC1_ID = testCreate(VSP_ID, COMPONENT_ID, NETWORK1_ID, NETWORK1_ID.getNetworkCompositionData().getName());
95 /* @Test(dependsOnMethods = {"testCreate"})
96 public void testCreateWithExistingName_negative() {
97 NicEntity nic = new NicEntity(VSP_ID, null, COMPONENT_ID, null);
98 Nic nicData = new Nic();
99 nicData.setName("nic1 name");
100 nic.setNicCompositionData(nicData);
101 testCreate_negative(nic, USER, UniqueValueUtil.UNIQUE_VALUE_VIOLATION);
104 // @Test(dependsOnMethods = {"testCreate"})
105 // public void testCreateWithExistingNameUnderOtherComponent() {
106 // ComponentEntity component12 = new ComponentEntity(VSP_ID, null, null);
107 // ComponentData compData12 = new ComponentData();
108 // compData12.setName("comp12 name");
109 // compData12.setDescription("comp12 desc");
110 // component12.setComponentCompositionData(compData12);
112 // String component12Id = nicManager.createComponent(component12, USER).getId();
113 // testCreate(VSP_ID, component12Id, NETWORK1_ID, NETWORK1_ID.getNetworkCompositionData().getName());
116 // @Test(dependsOnMethods = {"testCreate"})
117 // public void testCreateWithExistingNameUnderOtherVsp() {
118 // testCreate(vsp2Id, component21Id, network2.getId(), network2.getNetworkCompositionData().getName());
122 public void testCreateOnUploadVsp_negative() {
124 testCreate_negative(new NicEntity(VSP_ID, VERSION, COMPONENT_ID, null), USER,
125 VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED);
129 public void testUpdateNonExistingNicId_negative() {
130 doReturn(null).when(nicDao).get(anyObject());
132 testUpdate_negative(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER,
133 VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
137 public void testUpdateOnUploadVsp() {
138 doReturn(createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID))
139 .when(nicDao).get(anyObject());
141 doReturn(new CompositionEntityValidationData(CompositionEntityType.nic, NIC1_ID))
142 .when(compositionEntityDataManagerMock)
143 .validateEntity(anyObject(), anyObject(), anyObject());
145 NicEntity nicEntity = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID);
146 Nic nicData = new Nic();
147 nicData.setName(NIC1_ID + " name");
148 nicData.setDescription(NIC1_ID + " desc updated");
149 nicData.setNetworkId(NETWORK1_ID);
150 nicEntity.setNicCompositionData(nicData);
152 CompositionEntityValidationData validationData =
153 nicManager.updateNic(nicEntity, USER);
154 Assert.assertTrue(validationData == null || validationData.getErrors() == null);
155 verify(nicDao).update(nicEntity);
159 public void testIllegalUpdateOnUploadVsp() {
160 doReturn(createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID))
161 .when(nicDao).get(anyObject());
163 CompositionEntityValidationData toBeReturned =
164 new CompositionEntityValidationData(CompositionEntityType.nic, NIC1_ID);
165 toBeReturned.setErrors(Arrays.asList("error1", "error2"));
166 doReturn(toBeReturned)
167 .when(compositionEntityDataManagerMock)
168 .validateEntity(anyObject(), anyObject(), anyObject());
170 NicEntity nicEntity = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID);
171 Nic nicData = new Nic();
172 nicData.setName(NIC1_ID + " name updated");
173 nicData.setDescription(NIC1_ID + " desc updated");
174 nicData.setNetworkId(NETWORK1_ID);
175 nicEntity.setNicCompositionData(nicData);
177 CompositionEntityValidationData validationData = nicManager.updateNic(nicEntity, USER);
178 Assert.assertNotNull(validationData);
179 Assert.assertEquals(validationData.getErrors().size(), 2);
181 verify(nicDao, never()).update(nicEntity);
186 public void testGetNonExistingNicId_negative() {
187 testGet_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing nic id", USER,
188 VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
193 public void testGet() {
194 NicEntity expected = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
195 doReturn(expected).when(nicDao).get(anyObject());
196 String compositionSchema = "schema string";
197 doReturn(compositionSchema).when(nicManager).getNicCompositionSchema(anyObject());
199 CompositionEntityResponse<Nic> response =
200 nicManager.getNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER);
201 Assert.assertEquals(response.getId(), expected.getId());
202 Assert.assertEquals(response.getData(), expected.getNicCompositionData());
203 Assert.assertEquals(response.getSchema(), compositionSchema);
207 @Test(dependsOnMethods = {"testUpdateOnUploadVsp", "testList"})
208 public void testCreateWithRemovedName() {
209 testCreate(VSP_ID, COMPONENT_ID);
213 public void testDeleteNonExistingNicId_negative() {
214 testDelete_negative(VSP_ID, COMPONENT_ID, "non existing nic id", USER, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
217 @Test(dependsOnMethods = "testList")
218 public void testDeleteNonExistingComponentId_negative() {
219 testDelete_negative(VSP_ID, "non existing component id", NIC1_ID, USER, VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
223 @Test(dependsOnMethods = "testList")
224 public void testDelete() {
225 nicManager.deleteNic(VSP_ID, COMPONENT_ID, NIC1_ID, USER);
226 NicEntity actual = vendorSoftwareProductDao.getNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID);
227 Assert.assertNull(actual);
231 public void testDeleteOnUploadVsp_negative() {
232 testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER,
233 VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED);
236 @Test(expectedExceptions = CoreException.class,
237 expectedExceptionsMessageRegExp = NIC_NOT_EXIST_MSG)
238 public void testGetNonExistingNicQuestionnaire() throws Exception {
239 nicManager.getNicQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER);
243 public void testGetQuestionnaire() throws Exception {
244 NicEntity nic = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID);
245 nic.setQuestionnaireData("{}");
246 doReturn(nic).when(nicDao).getQuestionnaireData(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID);
248 String schema = "schema string";
249 doReturn(schema).when(nicManager).getNicQuestionnaireSchema(anyObject());
251 QuestionnaireResponse questionnaire =
252 nicManager.getNicQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER);
253 Assert.assertNotNull(questionnaire);
254 Assert.assertEquals(questionnaire.getData(), nic.getQuestionnaireData());
255 Assert.assertEquals(questionnaire.getSchema(), schema);
256 Assert.assertNull(questionnaire.getErrorMessage());
259 @Test(expectedExceptions = CoreException.class,
260 expectedExceptionsMessageRegExp = NIC_NOT_EXIST_MSG)
261 public void testUpdateNonExistingNicQuestionnaire() throws Exception {
262 doReturn(null).when(nicDao).get(anyObject());
264 .updateNicQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, "questionnaire data", USER);
268 public void testUpdateQuestionnaire() throws Exception {
272 private void testCreate_negative(NicEntity nic, String user, String expectedErrorCode) {
274 nicManager.createNic(nic, user);
276 } catch (CoreException exception) {
277 Assert.assertEquals(exception.code().id(), expectedErrorCode);
281 private void testGet_negative(String vspId, Version version, String componentId, String nicId,
282 String user, String expectedErrorCode) {
284 nicManager.getNic(vspId, version, componentId, nicId, user);
286 } catch (CoreException exception) {
287 Assert.assertEquals(exception.code().id(), expectedErrorCode);
291 private void testUpdate_negative(String vspId, Version version, String componentId, String nicId,
292 String user, String expectedErrorCode) {
294 nicManager.updateNic(new NicEntity(vspId, version, componentId, nicId), user);
296 } catch (CoreException exception) {
297 Assert.assertEquals(exception.code().id(), expectedErrorCode);
301 private void testDelete_negative(String vspId, Version version, String componentId, String nicId,
303 String expectedErrorCode) {
305 nicManager.deleteNic(vspId, version, componentId, nicId, user);
307 } catch (CoreException exception) {
308 Assert.assertEquals(exception.code().id(), expectedErrorCode);
312 static NicEntity createNic(String vspId, Version version, String compId, String nicId,
314 NicEntity nicEntity = new NicEntity(vspId, version, compId, nicId);
315 Nic nicData = new Nic();
316 nicData.setName(nicId + " name");
317 nicData.setDescription(nicId + " desc");
318 nicData.setNetworkId(networkId);
319 nicEntity.setNicCompositionData(nicData);