1 package org.openecomp.sdc.vendorlicense;
3 import org.openecomp.sdc.common.errors.CoreException;
4 import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
5 import org.openecomp.core.util.UniqueValueUtil;
7 import org.testng.Assert;
8 import org.testng.annotations.BeforeTest;
9 import org.testng.annotations.Test;
11 import java.util.Collection;
12 import java.util.HashSet;
13 import java.util.List;
16 public class VendorLicenseModelTest {
17 private static final org.openecomp.sdc.versioning.dao.types.Version
18 VERSION01 = new org.openecomp.sdc.versioning.dao.types.Version(0, 1);
19 private static final org.openecomp.sdc.versioning.dao.types.Version
20 VERSION02 = new org.openecomp.sdc.versioning.dao.types.Version(0, 2);
21 private static final String USER1 = "vlmTestUser1";
22 private static final String USER2 = "vlmTestUser2";
23 private static final String USER3 = "vlmTestUser3";
24 private static final String VLM1_NAME = "Vlm1 name";
25 private static VendorLicenseManager vendorLicenseManager = new VendorLicenseManagerImpl();
26 private static org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao vendorLicenseModelDao =
27 org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDaoFactory.getInstance().createInterface();
29 private static String vlm1Id;
30 private static String vlm2Id;
31 private static String vlm3Id;
32 private static String vlm4Id;
33 private static String laId;
34 private static String fg1Id;
35 private static String fg2Id;
37 private static String testCreate() {
38 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity vlm1 = createVendorLicenseModel(VLM1_NAME, "VLM1 dec", "icon1");
39 String vlmId = vendorLicenseManager.createVendorLicenseModel(vlm1, USER1).getId();
41 vlm1.setVersion(VERSION01);
42 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity loadedVlm1 = vendorLicenseModelDao.get(vlm1);
43 Assert.assertTrue(loadedVlm1.equals(vlm1));
47 public static org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity createVendorLicenseModel(String name, String desc,
49 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity
50 vendorLicenseModel = new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity();
51 vendorLicenseModel.setVendorName(name);
52 vendorLicenseModel.setDescription(desc);
53 vendorLicenseModel.setIconRef(icon);
54 return vendorLicenseModel;
59 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, VLM1_NAME);
61 .deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "VLM1 updated");
62 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "VLM2");
63 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "test_vlm1");
64 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "test_vlm2");
65 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "test_vlm3");
69 public void createTest() {
70 vlm1Id = testCreate();
73 @Test(dependsOnMethods = {"createTest"})
74 public void testCreateWithExistingVendorName_negative() {
77 .createVendorLicenseModel(createVendorLicenseModel(VLM1_NAME, "VLM1 dec", "icon1"),
80 } catch (CoreException e) {
81 Assert.assertEquals(e.code().id(), UniqueValueUtil.UNIQUE_VALUE_VIOLATION);
85 @Test(dependsOnMethods = {"testCreateWithExistingVendorName_negative"})
86 public void updateTest() {
87 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity
88 expectedVlm1 = new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity(vlm1Id, VERSION01);
89 expectedVlm1.setVendorName("VLM1 updated");
90 expectedVlm1.setDescription("VLM1 dec updated");
91 expectedVlm1.setIconRef("icon1 updated");
92 vendorLicenseManager.updateVendorLicenseModel(expectedVlm1, USER1);
94 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity actualVlm1 =
95 vendorLicenseModelDao.get(new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity(vlm1Id, VERSION01));
96 Assert.assertTrue(actualVlm1.equals(expectedVlm1));
99 @Test(dependsOnMethods = {"updateTest"})
100 public void testUpdateWithSimilarVendorName() {
101 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity
102 expectedVlm1 = new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity(vlm1Id, VERSION01);
103 expectedVlm1.setVendorName("vlm1 UPDATED");
104 vendorLicenseManager.updateVendorLicenseModel(expectedVlm1, USER1);
106 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity actualVlm1 =
107 vendorLicenseModelDao.get(new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity(vlm1Id, VERSION01));
108 Assert.assertTrue(actualVlm1.equals(expectedVlm1));
111 @Test(dependsOnMethods = {"updateTest"})
112 public void testCreateWithRemovedVendorName() {
116 @Test(dependsOnMethods = {"updateTest"})
117 public void getTest() {
118 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity expectedVlm1 =
119 vendorLicenseModelDao.get(new org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity(vlm1Id, VERSION01));
120 org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel actualVlm1 =
121 vendorLicenseManager.getVendorLicenseModel(vlm1Id, null, USER1);
123 Assert.assertTrue(actualVlm1.getVendorLicenseModel().equals(expectedVlm1));
124 Assert.assertEquals(actualVlm1.getVersionInfo().getActiveVersion(), VERSION01);
125 Assert.assertEquals(actualVlm1.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked);
126 Assert.assertEquals(actualVlm1.getVersionInfo().getLockingUser(), USER1);
129 @Test(dependsOnMethods = {"getTest"})
130 public void listTest() {
131 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity vlm2 = createVendorLicenseModel("VLM2", "VLM2 dec", "icon2");
132 vlm2Id = vendorLicenseManager.createVendorLicenseModel(vlm2, USER1).getId();
135 Collection<org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel> loadedVlms =
136 vendorLicenseManager.listVendorLicenseModels(null, USER1);
137 boolean vlm1Exists = false;
138 boolean vlm2Exists = false;
139 for (org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel loadedVlm : loadedVlms) {
140 if (vlm1Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
144 if (vlm2Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
145 Assert.assertTrue(loadedVlm.getVendorLicenseModel().equals(vlm2));
151 Assert.assertTrue(vlm1Exists);
152 Assert.assertTrue(vlm2Exists);
155 @Test(dependsOnMethods = {"listTest"})
156 public void listFinalVersionWhenNoneTest() {
157 Collection<org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel> loadedVlms =
158 vendorLicenseManager.listVendorLicenseModels(
159 org.openecomp.sdc.versioning.dao.types.VersionStatus.Final.name(), USER1);
160 boolean vlm1Exists = false;
161 boolean vlm2Exists = false;
162 for (org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel loadedVlm : loadedVlms) {
163 if (vlm1Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
167 if (vlm2Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
172 Assert.assertFalse(vlm1Exists);
173 Assert.assertFalse(vlm2Exists);
176 @Test(dependsOnMethods = {"listFinalVersionWhenNoneTest"})
178 // Unsupported operation for 1607 release.
179 /* public void deleteTest() {
180 vendorLicenseManager.deleteVendorLicenseModel(vlm1Id, USER1);
182 VendorLicenseModelEntity loadedVlm1 = vendorLicenseModelDao.get(new VendorLicenseModelEntity(vlm1Id, VERSION01));
183 Assert.assertEquals(loadedVlm1, null);
185 Collection<VendorLicenseModelEntity> loadedVlms = vendorLicenseModelDao.list(null);
186 Assert.assertTrue(loadedVlms.size() > 1);
187 boolean vlm1Exists = false;
188 boolean vlm2Exists = false;
189 for (VendorLicenseModelEntity loadedVlm : loadedVlms) {
190 if (vlm1Id.equals(loadedVlm.getId())) {
193 if (vlm2Id.equals(loadedVlm.getId())) {
197 Assert.assertFalse(vlm1Exists);
198 Assert.assertTrue(vlm2Exists);
201 @Test(dependsOnMethods = {"deleteTest"})*/
202 public void checkinTest() {
203 vendorLicenseManager.checkin(vlm2Id, USER1);
205 org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel versionedVlm2 =
206 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER1);
207 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION01);
208 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Available);
209 Assert.assertNull(versionedVlm2.getVersionInfo().getLockingUser());
212 @Test(dependsOnMethods = {"checkinTest"})
213 public void checkoutTest() {
214 vendorLicenseManager.checkout(vlm2Id, USER2);
216 org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel versionedVlm2 =
217 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER2);
218 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION02);
219 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked);
220 Assert.assertEquals(versionedVlm2.getVersionInfo().getLockingUser(), USER2);
222 versionedVlm2 = vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER1);
223 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION01);
224 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Locked);
225 Assert.assertEquals(versionedVlm2.getVersionInfo().getLockingUser(), USER2);
228 @Test(dependsOnMethods = {"checkoutTest"})
229 public void undoCheckoutTest() {
230 vendorLicenseManager.undoCheckout(vlm2Id, USER2);
232 org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel versionedVlm2 =
233 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER2);
234 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION01);
235 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Available);
236 Assert.assertNull(versionedVlm2.getVersionInfo().getLockingUser());
239 @Test(dependsOnMethods = {"undoCheckoutTest"}, expectedExceptions = CoreException.class)
240 public void submitUncompletedVlmNegativeTest() {
241 vendorLicenseManager.submit(vlm2Id, USER2);
244 @Test(dependsOnMethods = {"submitUncompletedVlmNegativeTest"},
245 expectedExceptions = CoreException.class)
246 public void submitUncompletedVlmMissingFGNegativeTest() {
247 vendorLicenseManager.checkout(vlm2Id, USER2);
248 org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity
249 licenseAgreement = new org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity(vlm2Id, null, null);
250 org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity licenseAgreementEntity =
251 vendorLicenseManager.createLicenseAgreement(licenseAgreement, USER2);
252 laId = licenseAgreementEntity.getId();
253 vendorLicenseManager.checkin(vlm2Id, USER2);
254 vendorLicenseManager.submit(vlm2Id, USER2);
257 @Test(dependsOnMethods = {"submitUncompletedVlmMissingFGNegativeTest"},
258 expectedExceptions = CoreException.class)
259 public void submitUncompletedVlmMissingEPNegativeTest() {
260 vendorLicenseManager.checkout(vlm2Id, USER2);
261 org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity
262 featureGroup = new org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity(vlm2Id, null, null);
263 featureGroup = vendorLicenseManager.createFeatureGroup(featureGroup, USER2);
264 fg1Id = featureGroup.getId();
266 org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel licenseAgreementModel =
267 vendorLicenseManager.getLicenseAgreementModel(vlm2Id, null, laId, USER2);
268 Set<String> fgIdSet = new HashSet<>();
271 .updateLicenseAgreement(licenseAgreementModel.getLicenseAgreement(), fgIdSet, null, USER2);
272 vendorLicenseManager.checkin(vlm2Id, USER2);
273 vendorLicenseManager.submit(vlm2Id, USER2);
276 @Test(dependsOnMethods = {"submitUncompletedVlmMissingEPNegativeTest"},
277 expectedExceptions = CoreException.class)
278 public void submitUncompletedVlmMissingEPInOneFGNegativeTest() {
279 vendorLicenseManager.checkout(vlm2Id, USER2);
280 org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity
281 featureGroup = new org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity(vlm2Id, null, null);
282 org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity entitlementPool = vendorLicenseManager
283 .createEntitlementPool(new org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity(vlm2Id, null, null), USER2);
284 featureGroup.getEntitlementPoolIds().add(entitlementPool.getId());
285 featureGroup = vendorLicenseManager.createFeatureGroup(featureGroup, USER2);
286 fg2Id = featureGroup.getId();
287 org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel licenseAgreementModel =
288 vendorLicenseManager.getLicenseAgreementModel(vlm2Id, null, laId, USER2);
289 Set<String> fgIdSet = new HashSet<>();
292 .updateLicenseAgreement(licenseAgreementModel.getLicenseAgreement(), fgIdSet, null, USER2);
294 vendorLicenseManager.checkin(vlm2Id, USER2);
295 vendorLicenseManager.submit(vlm2Id, USER2);
298 @Test(dependsOnMethods = {"submitUncompletedVlmMissingEPInOneFGNegativeTest"})
299 public void submitTest() {
300 vendorLicenseManager.checkout(vlm2Id, USER2);
302 org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity entitlementPool = vendorLicenseManager
303 .createEntitlementPool(new org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity(vlm2Id, null, null), USER2);
304 Set<String> epSetId = new HashSet<>();
305 epSetId.add(entitlementPool.getId());
307 org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity
308 featureGroup = new org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity(vlm2Id, null, fg1Id);
309 featureGroup.getEntitlementPoolIds().add(entitlementPool.getId());
310 org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel featureGroupModel =
311 vendorLicenseManager.getFeatureGroupModel(featureGroup, USER2);
314 .updateFeatureGroup(featureGroupModel.getFeatureGroup(), null, null, epSetId, null, USER2);
315 vendorLicenseManager.checkin(vlm2Id, USER2);
316 vendorLicenseManager.submit(vlm2Id, USER2);
318 org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel versionedVlm2 =
319 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER1);
320 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), new org.openecomp.sdc.versioning.dao.types.Version(1, 0));
321 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Final);
322 Assert.assertNull(versionedVlm2.getVersionInfo().getLockingUser());
325 @Test(dependsOnMethods = {"submitTest"})
326 public void listFinalVersionWhenOneTest() {
327 Collection<org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel> loadedVlms =
328 vendorLicenseManager.listVendorLicenseModels(
329 org.openecomp.sdc.versioning.dao.types.VersionStatus.Final.name(), USER1);
330 boolean vlm2Exists = false;
331 for (org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel loadedVlm : loadedVlms) {
332 if (vlm2Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
334 Assert.assertEquals(loadedVlm.getVersionInfo().getActiveVersion(), new org.openecomp.sdc.versioning.dao.types.Version(1, 0));
335 Assert.assertEquals(loadedVlm.getVersionInfo().getStatus(), org.openecomp.sdc.versioning.dao.types.VersionStatus.Final);
336 Assert.assertNull(loadedVlm.getVersionInfo().getLockingUser());
341 Assert.assertTrue(vlm2Exists);
344 @Test(dependsOnMethods = {"listFinalVersionWhenOneTest"})
345 public void testVLMListWithModificationTimeDescOrder() {
346 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity vlm1 = createVendorLicenseModel("test_vlm1", "desc", "icon");
347 vlm3Id = vendorLicenseManager.createVendorLicenseModel(vlm1, USER3).getId();
349 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity vlm2 = createVendorLicenseModel("test_vlm2", "desc", "icon");
350 vlm4Id = vendorLicenseManager.createVendorLicenseModel(vlm2, USER3).getId();
352 assertVLMInWantedLocationInVSPList(vlm4Id, 0, USER3);
353 assertVLMInWantedLocationInVSPList(vlm3Id, 1, USER3);
356 @Test(dependsOnMethods = {"testVLMListWithModificationTimeDescOrder"})
357 public void testOldVLMAfterChangeShouldBeInBeginningOfList() {
358 org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity ep = vendorLicenseManager
359 .createEntitlementPool(new org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity(vlm3Id, null, null), USER3);
361 assertVLMInWantedLocationInVSPList(vlm3Id, 0, USER3);
364 @Test(dependsOnMethods = {"testOldVLMAfterChangeShouldBeInBeginningOfList"})
365 public void testAddNewVLMShouldBeInBeginningOfList() {
366 org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity vlm = createVendorLicenseModel("test_vlm3", "desc", "icon");
367 String vlm5Id = vendorLicenseManager.createVendorLicenseModel(vlm, USER3).getId();
369 assertVLMInWantedLocationInVSPList(vlm5Id, 0, USER3);
372 @Test(dependsOnMethods = {"testAddNewVLMShouldBeInBeginningOfList"})
373 public void testVLMInBeginningOfListAfterCheckin() {
374 vendorLicenseManager.checkin(vlm4Id, USER3);
375 assertVLMInWantedLocationInVSPList(vlm4Id, 0, USER3);
378 @Test(dependsOnMethods = {"testVLMInBeginningOfListAfterCheckin"})
379 public void testVLMInBeginningOfListAfterCheckout() {
380 vendorLicenseManager.checkin(vlm3Id, USER3);
381 assertVLMInWantedLocationInVSPList(vlm3Id, 0, USER3);
383 vendorLicenseManager.checkout(vlm4Id, USER3);
384 assertVLMInWantedLocationInVSPList(vlm4Id, 0, USER3);
387 @Test(dependsOnMethods = {"testVLMInBeginningOfListAfterCheckout"})
388 public void testVLMInBeginningOfListAfterUndoCheckout() {
389 vendorLicenseManager.checkout(vlm3Id, USER3);
390 vendorLicenseManager.undoCheckout(vlm3Id, USER3);
391 assertVLMInWantedLocationInVSPList(vlm3Id, 0, USER3);
394 private void assertVLMInWantedLocationInVSPList(String vlmId, int location, String user) {
395 List<org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel> vlmList =
396 (List<org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel>) vendorLicenseManager
397 .listVendorLicenseModels(null, user);
398 Assert.assertEquals(vlmList.get(location).getVendorLicenseModel().getId(), vlmId);