2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
22 package org.openecomp.sdc.vendorlicense;
24 import org.openecomp.core.util.UniqueValueUtil;
25 import org.openecomp.sdc.common.errors.CoreException;
26 import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao;
27 import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDaoFactory;
28 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
29 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
30 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
31 import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
32 import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel;
33 import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
34 import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
35 import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
36 import org.openecomp.sdc.versioning.dao.types.Version;
37 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
38 import org.testng.Assert;
39 import org.testng.annotations.BeforeTest;
40 import org.testng.annotations.Test;
42 import java.util.Collection;
43 import java.util.HashSet;
44 import java.util.List;
47 public class VendorLicenseModelTest {
48 private static final Version VERSION01 = new Version(0, 1);
49 private static final Version VERSION02 = new Version(0, 2);
50 private static final String USER1 = "vlmTestUser1";
51 private static final String USER2 = "vlmTestUser2";
52 private static final String USER3 = "vlmTestUser3";
53 private static final String VLM1_NAME = "Vlm1 name";
54 private static VendorLicenseManager vendorLicenseManager = new VendorLicenseManagerImpl();
55 private static VendorLicenseModelDao vendorLicenseModelDao =
56 VendorLicenseModelDaoFactory.getInstance().createInterface();
58 private static String vlm1Id;
59 private static String vlm2Id;
60 private static String vlm3Id;
61 private static String vlm4Id;
62 private static String laId;
63 private static String fg1Id;
64 private static String fg2Id;
66 private static String testCreate() {
67 VendorLicenseModelEntity vlm1 = createVendorLicenseModel(VLM1_NAME, "VLM1 dec", "icon1");
68 String vlmId = vendorLicenseManager.createVendorLicenseModel(vlm1, USER1).getId();
70 vlm1.setVersion(VERSION01);
71 VendorLicenseModelEntity loadedVlm1 = vendorLicenseModelDao.get(vlm1);
72 Assert.assertTrue(loadedVlm1.equals(vlm1));
76 public static VendorLicenseModelEntity createVendorLicenseModel(String name, String desc,
78 VendorLicenseModelEntity vendorLicenseModel = new VendorLicenseModelEntity();
79 vendorLicenseModel.setVendorName(name);
80 vendorLicenseModel.setDescription(desc);
81 vendorLicenseModel.setIconRef(icon);
82 return vendorLicenseModel;
87 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, VLM1_NAME);
89 .deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "VLM1 updated");
90 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "VLM2");
91 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "test_vlm1");
92 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "test_vlm2");
93 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, "test_vlm3");
97 public void createTest() {
98 vlm1Id = testCreate();
99 //TODO: add verification of 'ActivityLogManager.addActionLog' func call
102 @Test(dependsOnMethods = {"createTest"})
103 public void testCreateWithExistingVendorName_negative() {
106 .createVendorLicenseModel(createVendorLicenseModel(VLM1_NAME, "VLM1 dec", "icon1"),
109 } catch (CoreException exception) {
110 Assert.assertEquals(exception.code().id(), UniqueValueUtil.UNIQUE_VALUE_VIOLATION);
112 //TODO: add verification of none 'ActivityLogManager.addActionLog' func call
115 @Test(dependsOnMethods = {"testCreateWithExistingVendorName_negative"})
116 public void updateTest() {
117 VendorLicenseModelEntity expectedVlm1 = new VendorLicenseModelEntity(vlm1Id, VERSION01);
118 expectedVlm1.setVendorName("VLM1 updated");
119 expectedVlm1.setDescription("VLM1 dec updated");
120 expectedVlm1.setIconRef("icon1 updated");
121 vendorLicenseManager.updateVendorLicenseModel(expectedVlm1, USER1);
123 VendorLicenseModelEntity actualVlm1 =
124 vendorLicenseModelDao.get(new VendorLicenseModelEntity(vlm1Id, VERSION01));
125 Assert.assertTrue(actualVlm1.equals(expectedVlm1));
128 @Test(dependsOnMethods = {"updateTest"})
129 public void testUpdateWithSimilarVendorName() {
130 VendorLicenseModelEntity expectedVlm1 = new VendorLicenseModelEntity(vlm1Id, VERSION01);
131 expectedVlm1.setVendorName("vlm1 UPDATED");
132 vendorLicenseManager.updateVendorLicenseModel(expectedVlm1, USER1);
134 VendorLicenseModelEntity actualVlm1 =
135 vendorLicenseModelDao.get(new VendorLicenseModelEntity(vlm1Id, VERSION01));
136 Assert.assertTrue(actualVlm1.equals(expectedVlm1));
139 @Test(dependsOnMethods = {"updateTest"})
140 public void testCreateWithRemovedVendorName() {
144 @Test(dependsOnMethods = {"updateTest"})
145 public void getTest() {
146 VendorLicenseModelEntity expectedVlm1 =
147 vendorLicenseModelDao.get(new VendorLicenseModelEntity(vlm1Id, VERSION01));
148 VersionedVendorLicenseModel actualVlm1 =
149 vendorLicenseManager.getVendorLicenseModel(vlm1Id, null, USER1);
151 Assert.assertTrue(actualVlm1.getVendorLicenseModel().equals(expectedVlm1));
152 Assert.assertEquals(actualVlm1.getVersionInfo().getActiveVersion(), VERSION01);
153 Assert.assertEquals(actualVlm1.getVersionInfo().getStatus(), VersionStatus.Locked);
154 Assert.assertEquals(actualVlm1.getVersionInfo().getLockingUser(), USER1);
157 @Test(dependsOnMethods = {"getTest"})
158 public void listTest() {
159 VendorLicenseModelEntity vlm2 = createVendorLicenseModel("VLM2", "VLM2 dec", "icon2");
160 vlm2Id = vendorLicenseManager.createVendorLicenseModel(vlm2, USER1).getId();
163 Collection<VersionedVendorLicenseModel> loadedVlms =
164 vendorLicenseManager.listVendorLicenseModels(null, USER1);
165 boolean vlm1Exists = false;
166 boolean vlm2Exists = false;
167 for (VersionedVendorLicenseModel loadedVlm : loadedVlms) {
168 if (vlm1Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
172 if (vlm2Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
173 Assert.assertTrue(loadedVlm.getVendorLicenseModel().equals(vlm2));
179 Assert.assertTrue(vlm1Exists);
180 Assert.assertTrue(vlm2Exists);
183 @Test(dependsOnMethods = {"listTest"})
184 public void listFinalVersionWhenNoneTest() {
185 Collection<VersionedVendorLicenseModel> loadedVlms =
186 vendorLicenseManager.listVendorLicenseModels(VersionStatus.Final.name(), USER1);
187 boolean vlm1Exists = false;
188 boolean vlm2Exists = false;
189 for (VersionedVendorLicenseModel loadedVlm : loadedVlms) {
190 if (vlm1Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
194 if (vlm2Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
199 Assert.assertFalse(vlm1Exists);
200 Assert.assertFalse(vlm2Exists);
203 @Test(dependsOnMethods = {"listFinalVersionWhenNoneTest"})
205 // Unsupported operation for 1607 release.
207 /* public void deleteTest() {
208 vendorLicenseManager.deleteVendorLicenseModel(vlm1Id, USER1);
210 VendorLicenseModelEntity loadedVlm1 = vendorLicenseModelDao.get(new VendorLicenseModelEntity(vlm1Id, VERSION01));
211 Assert.assertEquals(loadedVlm1, null);
213 Collection<VendorLicenseModelEntity> loadedVlms = vendorLicenseModelDao.list(null);
214 Assert.assertTrue(loadedVlms.size() > 1);
215 boolean vlm1Exists = false;
216 boolean vlm2Exists = false;
217 for (VendorLicenseModelEntity loadedVlm : loadedVlms) {
218 if (vlm1Id.equals(loadedVlm.getId())) {
221 if (vlm2Id.equals(loadedVlm.getId())) {
225 Assert.assertFalse(vlm1Exists);
226 Assert.assertTrue(vlm2Exists);
229 @Test(dependsOnMethods = {"deleteTest"})*//*
231 public void checkinTest() {
232 vendorLicenseManager.checkin(vlm2Id, USER1);
234 VersionedVendorLicenseModel versionedVlm2 =
235 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER1);
236 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION01);
237 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), VersionStatus.Available);
238 Assert.assertNull(versionedVlm2.getVersionInfo().getLockingUser());
240 //TODO: add verification of 'ActivityLogManager.addActionLog' func call
243 @Test(dependsOnMethods = {"checkinTest"})
244 public void checkoutTest() {
245 vendorLicenseManager.checkout(vlm2Id, USER2);
247 VersionedVendorLicenseModel versionedVlm2 =
248 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER2);
249 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION02);
250 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), VersionStatus.Locked);
251 Assert.assertEquals(versionedVlm2.getVersionInfo().getLockingUser(), USER2);
253 versionedVlm2 = vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER1);
254 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION01);
255 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), VersionStatus.Locked);
256 Assert.assertEquals(versionedVlm2.getVersionInfo().getLockingUser(), USER2);
258 //TODO: add verification of 'ActivityLogManager.addActionLog' func call
261 @Test(dependsOnMethods = {"checkoutTest"})
262 public void undoCheckoutTest() {
263 vendorLicenseManager.undoCheckout(vlm2Id, USER2);
265 VersionedVendorLicenseModel versionedVlm2 =
266 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER2);
267 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), VERSION01);
268 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), VersionStatus.Available);
269 Assert.assertNull(versionedVlm2.getVersionInfo().getLockingUser());
272 @Test(dependsOnMethods = {"undoCheckoutTest"}, expectedExceptions = CoreException.class)
273 public void submitUncompletedVlmNegativeTest() {
274 vendorLicenseManager.submit(vlm2Id, USER2);
276 //TODO: add verification of none 'ActivityLogManager.addActionLog' func call
279 @Test(dependsOnMethods = {"submitUncompletedVlmNegativeTest"},
280 expectedExceptions = CoreException.class)
281 public void submitUncompletedVlmMissingFGNegativeTest() {
282 vendorLicenseManager.checkout(vlm2Id, USER2);
283 LicenseAgreementEntity licenseAgreement = new LicenseAgreementEntity(vlm2Id, null, null);
284 LicenseAgreementEntity licenseAgreementEntity =
285 vendorLicenseManager.createLicenseAgreement(licenseAgreement, USER2);
286 laId = licenseAgreementEntity.getId();
287 vendorLicenseManager.checkin(vlm2Id, USER2);
288 vendorLicenseManager.submit(vlm2Id, USER2);
291 @Test(dependsOnMethods = {"submitUncompletedVlmMissingFGNegativeTest"},
292 expectedExceptions = CoreException.class)
293 public void submitUncompletedVlmMissingEPNegativeTest() {
294 vendorLicenseManager.checkout(vlm2Id, USER2);
295 FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlm2Id, null, null);
296 featureGroup = vendorLicenseManager.createFeatureGroup(featureGroup, USER2);
297 fg1Id = featureGroup.getId();
299 LicenseAgreementModel
300 licenseAgreementModel =
301 vendorLicenseManager.getLicenseAgreementModel(vlm2Id, null, laId, USER2);
302 Set<String> fgIdSet = new HashSet<>();
305 .updateLicenseAgreement(licenseAgreementModel.getLicenseAgreement(), fgIdSet, null, USER2);
306 vendorLicenseManager.checkin(vlm2Id, USER2);
307 vendorLicenseManager.submit(vlm2Id, USER2);
310 @Test(dependsOnMethods = {"submitUncompletedVlmMissingEPNegativeTest"},
311 expectedExceptions = CoreException.class)
312 public void submitUncompletedVlmMissingEPInOneFGNegativeTest() {
313 vendorLicenseManager.checkout(vlm2Id, USER2);
314 FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlm2Id, null, null);
315 EntitlementPoolEntity entitlementPool = vendorLicenseManager
316 .createEntitlementPool(new EntitlementPoolEntity(vlm2Id, null, null), USER2);
317 featureGroup.getEntitlementPoolIds().add(entitlementPool.getId());
318 featureGroup = vendorLicenseManager.createFeatureGroup(featureGroup, USER2);
319 fg2Id = featureGroup.getId();
320 LicenseAgreementModel licenseAgreementModel =
321 vendorLicenseManager.getLicenseAgreementModel(vlm2Id, null, laId, USER2);
322 Set<String> fgIdSet = new HashSet<>();
325 .updateLicenseAgreement(licenseAgreementModel.getLicenseAgreement(), fgIdSet, null, USER2);
327 vendorLicenseManager.checkin(vlm2Id, USER2);
328 vendorLicenseManager.submit(vlm2Id, USER2);
331 @Test(dependsOnMethods = {"submitUncompletedVlmMissingEPInOneFGNegativeTest"})
332 public void submitTest() {
333 vendorLicenseManager.checkout(vlm2Id, USER2);
335 EntitlementPoolEntity entitlementPool = vendorLicenseManager
336 .createEntitlementPool(new EntitlementPoolEntity(vlm2Id, null, null), USER2);
337 Set<String> epSetId = new HashSet<>();
338 epSetId.add(entitlementPool.getId());
340 FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlm2Id, null, fg1Id);
341 featureGroup.getEntitlementPoolIds().add(entitlementPool.getId());
343 featureGroupModel = vendorLicenseManager.getFeatureGroupModel(featureGroup, USER2);
346 .updateFeatureGroup(featureGroupModel.getFeatureGroup(), null, null, epSetId, null, USER2);
347 vendorLicenseManager.checkin(vlm2Id, USER2);
348 vendorLicenseManager.submit(vlm2Id, USER2);
350 VersionedVendorLicenseModel versionedVlm2 =
351 vendorLicenseManager.getVendorLicenseModel(vlm2Id, null, USER1);
352 Assert.assertEquals(versionedVlm2.getVersionInfo().getActiveVersion(), new Version(1, 0));
353 Assert.assertEquals(versionedVlm2.getVersionInfo().getStatus(), VersionStatus.Final);
354 Assert.assertNull(versionedVlm2.getVersionInfo().getLockingUser());
356 //TODO: add verification of 'ActivityLogManager.addActionLog' func call
359 @Test(dependsOnMethods = {"submitTest"})
360 public void listFinalVersionWhenOneTest() {
361 Collection<VersionedVendorLicenseModel> loadedVlms =
362 vendorLicenseManager.listVendorLicenseModels(VersionStatus.Final.name(), USER1);
363 boolean vlm2Exists = false;
364 for (VersionedVendorLicenseModel loadedVlm : loadedVlms) {
365 if (vlm2Id.equals(loadedVlm.getVendorLicenseModel().getId())) {
367 Assert.assertEquals(loadedVlm.getVersionInfo().getActiveVersion(), new Version(1, 0));
368 Assert.assertEquals(loadedVlm.getVersionInfo().getStatus(), VersionStatus.Final);
369 Assert.assertNull(loadedVlm.getVersionInfo().getLockingUser());
374 Assert.assertTrue(vlm2Exists);
377 @Test(dependsOnMethods = {"listFinalVersionWhenOneTest"})
378 public void testVLMListWithModificationTimeDescOrder() {
379 VendorLicenseModelEntity vlm1 = createVendorLicenseModel("test_vlm1", "desc", "icon");
380 vlm3Id = vendorLicenseManager.createVendorLicenseModel(vlm1, USER3).getId();
382 VendorLicenseModelEntity vlm2 = createVendorLicenseModel("test_vlm2", "desc", "icon");
383 vlm4Id = vendorLicenseManager.createVendorLicenseModel(vlm2, USER3).getId();
385 assertVLMInWantedLocationInVSPList(vlm4Id, 0, USER3);
386 assertVLMInWantedLocationInVSPList(vlm3Id, 1, USER3);
389 @Test(dependsOnMethods = {"testVLMListWithModificationTimeDescOrder"})
390 public void testOldVLMAfterChangeShouldBeInBeginningOfList() {
391 EntitlementPoolEntity ep = vendorLicenseManager
392 .createEntitlementPool(new EntitlementPoolEntity(vlm3Id, null, null), USER3);
394 assertVLMInWantedLocationInVSPList(vlm3Id, 0, USER3);
397 @Test(dependsOnMethods = {"testOldVLMAfterChangeShouldBeInBeginningOfList"})
398 public void testAddNewVLMShouldBeInBeginningOfList() {
399 VendorLicenseModelEntity vlm = createVendorLicenseModel("test_vlm3", "desc", "icon");
400 String vlm5Id = vendorLicenseManager.createVendorLicenseModel(vlm, USER3).getId();
402 assertVLMInWantedLocationInVSPList(vlm5Id, 0, USER3);
405 @Test(dependsOnMethods = {"testAddNewVLMShouldBeInBeginningOfList"})
406 public void testVLMInBeginningOfListAfterCheckin() {
407 vendorLicenseManager.checkin(vlm4Id, USER3);
408 assertVLMInWantedLocationInVSPList(vlm4Id, 0, USER3);
411 @Test(dependsOnMethods = {"testVLMInBeginningOfListAfterCheckin"})
412 public void testVLMInBeginningOfListAfterCheckout() {
413 vendorLicenseManager.checkin(vlm3Id, USER3);
414 assertVLMInWantedLocationInVSPList(vlm3Id, 0, USER3);
416 vendorLicenseManager.checkout(vlm4Id, USER3);
417 assertVLMInWantedLocationInVSPList(vlm4Id, 0, USER3);
420 @Test(dependsOnMethods = {"testVLMInBeginningOfListAfterCheckout"})
421 public void testVLMInBeginningOfListAfterUndoCheckout() {
422 vendorLicenseManager.checkout(vlm3Id, USER3);
423 vendorLicenseManager.undoCheckout(vlm3Id, USER3);
424 assertVLMInWantedLocationInVSPList(vlm3Id, 0, USER3);
427 private void assertVLMInWantedLocationInVSPList(String vlmId, int location, String user) {
428 List<VersionedVendorLicenseModel> vlmList =
429 (List<VersionedVendorLicenseModel>) vendorLicenseManager
430 .listVendorLicenseModels(null, user);
431 Assert.assertEquals(vlmList.get(location).getVendorLicenseModel().getId(), vlmId);