1 package org.openecomp.sdc.vendorlicense;
3 import org.openecomp.sdc.common.errors.CoreException;
4 import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao;
5 import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDaoFactory;
6 import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
7 import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyType;
8 import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
9 import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
10 import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
11 import org.openecomp.sdc.versioning.dao.types.Version;
12 import org.openecomp.core.nosqldb.api.NoSqlDb;
13 import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
14 import org.openecomp.core.util.UniqueValueUtil;
15 import org.openecomp.core.utilities.CommonMethods;
16 import org.testng.Assert;
17 import org.testng.annotations.BeforeClass;
18 import org.testng.annotations.Test;
20 import java.util.Collection;
21 import java.util.Collections;
22 import java.util.HashSet;
25 public class LicenseKeyGroupTest {
27 public static final String LKG1_NAME = "LKG1 name";
28 private static final Version VERSION01 = new Version(0, 1);
29 private static final String USER1 = "user1";
30 public static String vlm1Id;
31 public static String vlm2Id;
32 private static VendorLicenseManager vendorLicenseManager = new VendorLicenseManagerImpl();
33 private static LicenseKeyGroupDao licenseKeyGroupDao;
34 private static NoSqlDb noSqlDb;
35 private static String lkg1Id;
36 private static String lkg2Id;
38 public static LicenseKeyGroupEntity createLicenseKeyGroup(String vlmId, Version version,
39 String name, String desc,
41 MultiChoiceOrOther<OperationalScope> operationalScope) {
42 LicenseKeyGroupEntity licenseKeyGroup = new LicenseKeyGroupEntity();
43 licenseKeyGroup.setVendorLicenseModelId(vlmId);
44 licenseKeyGroup.setVersion(version);
45 licenseKeyGroup.setName(name);
46 licenseKeyGroup.setDescription(desc);
47 licenseKeyGroup.setType(type);
48 licenseKeyGroup.setOperationalScope(operationalScope);
49 return licenseKeyGroup;
54 licenseKeyGroupDao = LicenseKeyGroupDaoFactory.getInstance().createInterface();
55 noSqlDb = NoSqlDbFactory.getInstance().createInterface();
57 vlm1Id = vendorLicenseManager.createVendorLicenseModel(VendorLicenseModelTest
58 .createVendorLicenseModel("vendor1 name " + CommonMethods.nextUuId(), "vlm1Id dec",
59 "icon1"), USER1).getId();
60 vlm2Id = vendorLicenseManager.createVendorLicenseModel(VendorLicenseModelTest
61 .createVendorLicenseModel("vendor2 name " + CommonMethods.nextUuId(), "vlm2 dec", "icon2"),
66 public void createTest() {
67 lkg1Id = testCreate(vlm1Id, LKG1_NAME);
70 private String testCreate(String vlmId, String name) {
71 Set<OperationalScope> opScopeChoices = new HashSet<>();
72 opScopeChoices.add(OperationalScope.CPU);
73 opScopeChoices.add(OperationalScope.VM);
74 opScopeChoices.add(OperationalScope.Tenant);
75 opScopeChoices.add(OperationalScope.Data_Center);
76 LicenseKeyGroupEntity lkg1 =
77 createLicenseKeyGroup(vlmId, VERSION01, name, "LKG1 dec", LicenseKeyType.One_Time,
78 new MultiChoiceOrOther<>(opScopeChoices, null));
79 String lkg1Id = vendorLicenseManager.createLicenseKeyGroup(lkg1, USER1).getId();
82 LicenseKeyGroupEntity loadedLkg1 = licenseKeyGroupDao.get(lkg1);
83 Assert.assertTrue(loadedLkg1.equals(lkg1));
87 @Test(dependsOnMethods = {"createTest"})
88 public void testCreateWithExistingName_negative() {
90 LicenseKeyGroupEntity lkg1 =
91 createLicenseKeyGroup(vlm1Id, VERSION01, LKG1_NAME, "LKG1 dec", LicenseKeyType.One_Time,
92 new MultiChoiceOrOther<>(Collections.singleton(OperationalScope.Other),
94 vendorLicenseManager.createLicenseKeyGroup(lkg1, USER1).getId();
96 } catch (CoreException e) {
97 Assert.assertEquals(e.code().id(), UniqueValueUtil.UNIQUE_VALUE_VIOLATION);
101 @Test(dependsOnMethods = {"createTest"})
102 public void testCreateWithExistingNameUnderOtherVlm() {
103 testCreate(vlm2Id, LKG1_NAME);
106 @Test(dependsOnMethods = {"testCreateWithExistingName_negative"})
107 public void updateAndGetTest() {
108 LicenseKeyGroupEntity lkg1 =
109 licenseKeyGroupDao.get(new LicenseKeyGroupEntity(vlm1Id, VERSION01, lkg1Id));
110 Set<OperationalScope> opScopeChoices = new HashSet<>();
111 opScopeChoices.add(OperationalScope.Other);
112 lkg1.setOperationalScope(new MultiChoiceOrOther<>(opScopeChoices, "op scope1 updated"));
113 lkg1.setDescription("LKG1 dec updated");
115 vendorLicenseManager.updateLicenseKeyGroup(lkg1, USER1);
117 LicenseKeyGroupEntity loadedLkg1 = vendorLicenseManager.getLicenseKeyGroup(lkg1, USER1);
118 Assert.assertTrue(loadedLkg1.equals(lkg1));
122 @Test(dependsOnMethods = {"updateAndGetTest"})
123 public void listTest() {
124 Set<OperationalScope> opScopeChoices = new HashSet<>();
125 opScopeChoices.add(OperationalScope.Network_Wide);
126 LicenseKeyGroupEntity lkg2 =
127 createLicenseKeyGroup(vlm1Id, VERSION01, "LKG2", "LKG2 dec", LicenseKeyType.Universal,
128 new MultiChoiceOrOther<>(opScopeChoices, null));
129 lkg2Id = vendorLicenseManager.createLicenseKeyGroup(lkg2, USER1).getId();
132 Collection<LicenseKeyGroupEntity> loadedLkgs =
133 vendorLicenseManager.listLicenseKeyGroups(vlm1Id, null, USER1);
134 Assert.assertEquals(loadedLkgs.size(), 2);
135 for (LicenseKeyGroupEntity loadedLkg : loadedLkgs) {
136 if (lkg2Id.equals(loadedLkg.getId())) {
137 Assert.assertTrue(loadedLkg.equals(lkg2));
142 @Test(dependsOnMethods = {"listTest"})
143 public void deleteTest() {
145 .deleteLicenseKeyGroup(new LicenseKeyGroupEntity(vlm1Id, VERSION01, lkg1Id), USER1);
147 LicenseKeyGroupEntity loadedLkg1 =
148 licenseKeyGroupDao.get(new LicenseKeyGroupEntity(vlm1Id, VERSION01, lkg1Id));
149 Assert.assertEquals(loadedLkg1, null);
151 Collection<LicenseKeyGroupEntity> loadedLkgs =
152 licenseKeyGroupDao.list(new LicenseKeyGroupEntity(vlm1Id, VERSION01, null));
153 Assert.assertEquals(loadedLkgs.size(), 1);
154 Assert.assertEquals(loadedLkgs.iterator().next().getId(), lkg2Id);
157 @Test(dependsOnMethods = "deleteTest")
158 public void testCreateWithRemovedName() {
159 testCreate(vlm1Id, LKG1_NAME);