From 61070c9c6b665fdea79b3ccdfeafc3a6b50d262e Mon Sep 17 00:00:00 2001 From: Avi Ziv Date: Wed, 26 Jul 2017 17:37:57 +0300 Subject: [SDC] Full OnBoard health-check and NFoD support Change-Id: I606f8a52c7e6d2bd5558f824957d890e552c5423 Signed-off-by: Avi Ziv --- .../sdc/vendorlicense/EntitlementPoolTest.java | 6 - .../sdc/vendorlicense/LicenseKeyGroupTest.java | 199 ++++++++++++++++++++- .../vendorlicense/VendorLicenseFacadeImplTest.java | 144 +++++++++------ 3 files changed, 288 insertions(+), 61 deletions(-) (limited to 'openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org') diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java index 9b079de3fa..620c6fbf91 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java @@ -89,15 +89,9 @@ public class EntitlementPoolTest { entitlementPool.setDescription(desc); entitlementPool.setThresholdValue(threshold); entitlementPool.setThresholdUnit(thresholdUnit); - entitlementPool - .setEntitlementMetric(new ChoiceOrOther<>(entitlementMetricChoice, entitlementMetricOther)); entitlementPool.setIncrements(increments); - entitlementPool.setAggregationFunction( - new ChoiceOrOther<>(aggregationFunctionChoice, aggregationFunctionOther)); entitlementPool.setOperationalScope( new MultiChoiceOrOther<>(operationalScopeChoices, operationalScopeOther)); - entitlementPool.setTime(new ChoiceOrOther<>(timeChoice, timeOther)); - entitlementPool.setManufacturerReferenceNumber(sku); return entitlementPool; } diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java index 782d93a885..04f7c794bc 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java @@ -29,6 +29,7 @@ import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao; import org.openecomp.sdc.vendorlicense.dao.LimitDao; import org.openecomp.sdc.vendorlicense.dao.types.*; +import org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes; import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade; import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl; import org.openecomp.sdc.versioning.dao.types.Version; @@ -41,6 +42,10 @@ import org.testng.annotations.Test; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -54,6 +59,8 @@ public class LicenseKeyGroupTest { private final String USER = "lkgTestUser"; private final String LKG_NAME = "LKG name"; private final String LT_NAME = "LT name"; + private final String LKG1_NAME = "LKG1 name"; + private final String USER1 = "user1"; @Mock private VendorLicenseFacade vendorLicenseFacade; @@ -186,8 +193,193 @@ public class LicenseKeyGroupTest { } } + @Test + public void createTest() { + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setStartDate(LocalDate.now().format(formatter)); + lkg.setExpiryDate(LocalDate.now().plusDays(1L).format(formatter)); + + vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1); + } + + @Test + public void createWithInvalidStartExpiryDateTest() { + try { + + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setStartDate(LocalDate.now().format(formatter)); + lkg.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter)); + vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID); + } + } + + @Test + public void createWithoutStartDateTest() { + try { + + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter)); + vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1).getId(); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID); + } + } + + @Test + public void createWithSameStartExpiryDateTest() { + try { + + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setStartDate(LocalDate.now().plusDays(2L).format(formatter)); + lkg.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter)); + vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1).getId(); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID); + } + } + + @Test + public void createUpdate() { + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setStartDate(LocalDate.now().minusDays(3L).format(formatter)); + lkg.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter)); + VersionInfo info = new VersionInfo(); + Version version = new Version(); + info.getViewableVersions().add(version); + info.setActiveVersion(version); + doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject()); + + vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1); + } + + @Test + public void updateWithInvalidStartExpiryDateTest() { + try { + + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setStartDate(LocalDate.now().format(formatter)); + lkg.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter)); + vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID); + } + } + + @Test + public void updateWithoutStartDateTest() { + try { + + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter)); + vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID); + } + } + + @Test + public void updateWithSameStartExpiryDateTest() { + try { + + Set opScopeChoices; + opScopeChoices = new HashSet<>(); + opScopeChoices.add(OperationalScope.Core); + opScopeChoices.add(OperationalScope.CPU); + opScopeChoices.add(OperationalScope.Network_Wide); + LicenseKeyGroupEntity lkg = + createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique, + new MultiChoiceOrOther<>(opScopeChoices, null)); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + lkg.setStartDate(LocalDate.now().format(formatter)); + lkg.setExpiryDate(LocalDate.now().format(formatter)); + vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1); + Assert.fail(); + } catch (CoreException exception) { + Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID); + } + } + + + public static LicenseKeyGroupEntity createLicenseKeyGroup(String vlmId, Version version, + String name, String desc, + LicenseKeyType type, + MultiChoiceOrOther operationalScope) { + LicenseKeyGroupEntity licenseKeyGroup = new LicenseKeyGroupEntity(); + licenseKeyGroup.setVendorLicenseModelId(vlmId); + licenseKeyGroup.setVersion(version); + licenseKeyGroup.setName(name); + licenseKeyGroup.setDescription(desc); + licenseKeyGroup.setType(type); + licenseKeyGroup.setOperationalScope(operationalScope); + return licenseKeyGroup; + } + /*public static final String LKG1_NAME = "LKG1 name"; private static final Version VERSION01 = new Version(0, 1); + public static final String LKG1_NAME = "LKG1 name"; private static final String USER1 = "user1"; public static String vlm1Id; public static String vlm2Id; @@ -211,7 +403,12 @@ public class LicenseKeyGroupTest { return licenseKeyGroup; } - @BeforeClass + @BeforeMethod + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + /*@BeforeClass private void init() { licenseKeyGroupDao = LicenseKeyGroupDaoFactory.getInstance().createInterface(); noSqlDb = NoSqlDbFactory.getInstance().createInterface(); diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java index 58db488d86..40bbc77faa 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java @@ -1,18 +1,27 @@ package org.openecomp.sdc.vendorlicense; +import org.junit.Assert; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import org.openecomp.sdc.vendorlicense.dao.*; +import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity; import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity; import org.openecomp.sdc.vendorlicense.facade.impl.VendorLicenseFacadeImpl; +import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl; import org.openecomp.sdc.versioning.VersioningManager; import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.types.VersionInfo; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; +import java.util.List; import java.util.Set; import static org.mockito.Matchers.anyObject; @@ -21,12 +30,16 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; /** - * Created by diveshm on 7/3/2017. + * This test just verifies Feature Group Get and List APIs. */ public class VendorLicenseFacadeImplTest { //JUnit Test Cases using Mockito private static final Version VERSION01 = new Version(0, 1); - private final String FG1_NAME = "FG1 name"; + public static final String EP1 = "ep1"; + public static final String MRN = "mrn"; + public static final String VLM_ID = "VLM_ID"; + public static final String USER = "USER1"; + @Mock private VendorLicenseModelDao vendorLicenseModelDao; @@ -50,78 +63,101 @@ public class VendorLicenseFacadeImplTest { @Spy private VendorLicenseFacadeImpl vendorLicenseFacadeImpl; - public FeatureGroupEntity createFeatureGroup(String vlmId, Version version, String id, String name, String desc, - String partNumber, String manufacturerReferenceNumber, Set - licenseKeyGroupIds, Set entitlementPoolIds, Set - referencingLicenseAgreements){ - FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlmId, version, id); - featureGroup.setVendorLicenseModelId(vlmId); - featureGroup.setVersion(version); - featureGroup.setId(id); - featureGroup.setName(name); - featureGroup.setDescription(desc); - featureGroup.setPartNumber(partNumber); - //featureGroup.setManufacturerReferenceNumber(manufacturerReferenceNumber); - featureGroup.setLicenseKeyGroupIds(licenseKeyGroupIds); - featureGroup.setEntitlementPoolIds(entitlementPoolIds); - featureGroup.setReferencingLicenseAgreements(referencingLicenseAgreements); - - return featureGroup; - } - @BeforeMethod public void setUp() throws Exception{ MockitoAnnotations.initMocks(this); } @Test - public void testCreate(){ - Set licenseKeyGroupIds; - licenseKeyGroupIds = new HashSet<>(); - licenseKeyGroupIds.add("lkg1"); + public void testGetFeatureGroupWhenMRNNull () { + resetFieldModifiers(); + + FeatureGroupEntity featureGroup = createFeatureGroup(); + + VersionInfo info = new VersionInfo(); + info.getViewableVersions().add(VERSION01); + info.setActiveVersion(VERSION01); Set entitlementPoolIds; entitlementPoolIds = new HashSet<>(); - entitlementPoolIds.add("ep1"); - - Set referencingLicenseAgreements; - referencingLicenseAgreements = new HashSet<>(); - referencingLicenseAgreements.add("la1"); + entitlementPoolIds.add(EP1); - FeatureGroupEntity featureGroupEntity = createFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc", - "partNumber", "MRN", licenseKeyGroupIds, entitlementPoolIds, - referencingLicenseAgreements); + EntitlementPoolEntity ep = createEP(); - doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject()); + featureGroup.setEntitlementPoolIds(entitlementPoolIds); - /*if(featureGroupEntity.getManufacturerReferenceNumber() != null) - featureGroupDao.create(featureGroupEntity); - verify(featureGroupDao).create(anyObject());*/ + doReturn(info).when(vendorLicenseFacadeImpl).getVersionInfo(anyObject(),anyObject(),anyObject()); + doReturn(featureGroup).when(featureGroupDao).get(featureGroup); + doReturn(ep).when(entitlementPoolDao).get(anyObject()); + doReturn(MRN).when(entitlementPoolDao).getManufacturerReferenceNumber(anyObject()); + FeatureGroupEntity retrieved = vendorLicenseFacadeImpl.getFeatureGroup(featureGroup, USER); + Assert.assertEquals(MRN, retrieved.getManufacturerReferenceNumber()); } @Test - public void testCreateWithoutManufacturerReferenceNumber(){ - Set licenseKeyGroupIds; - licenseKeyGroupIds = new HashSet<>(); - licenseKeyGroupIds.add("lkg1"); + public void testListFeatureGroups () { + resetFieldModifiers(); - Set entitlementPoolIds; - entitlementPoolIds = new HashSet<>(); - entitlementPoolIds.add("ep1"); + FeatureGroupEntity featureGroup = createFeatureGroup(); - Set referencingLicenseAgreements; - referencingLicenseAgreements = new HashSet<>(); - referencingLicenseAgreements.add("la1"); + Collection featureGroups = new ArrayList(); + featureGroups.add(featureGroup); - FeatureGroupEntity featureGroupEntity = createFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc", - "partNumber", null, licenseKeyGroupIds, entitlementPoolIds, - referencingLicenseAgreements); - doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject()); + VersionInfo info = new VersionInfo(); + info.getViewableVersions().add(VERSION01); + info.setActiveVersion(VERSION01); - /*if(featureGroupEntity.getManufacturerReferenceNumber() != null) - featureGroupDao.create(featureGroupEntity); + EntitlementPoolEntity ep = createEP(); - verify(featureGroupDao, never()).create(anyObject());*/ + doReturn(info).when(vendorLicenseFacadeImpl).getVersionInfo(anyObject(),anyObject(),anyObject()); + doReturn(featureGroup).when(featureGroupDao).get(featureGroup); + doReturn(ep).when(entitlementPoolDao).get(anyObject()); + doReturn(MRN).when(entitlementPoolDao).getManufacturerReferenceNumber(anyObject()); + Collection retrieved = vendorLicenseFacadeImpl.listFeatureGroups(VLM_ID, + VERSION01, USER); + retrieved.stream().forEach(fg -> Assert.assertEquals(MRN,fg.getManufacturerReferenceNumber())); + } + + private void resetFieldModifiers() { + try { + Field fgField = VendorLicenseFacadeImpl.class.getDeclaredField("featureGroupDao"); + fgField.setAccessible(true); + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(fgField, fgField.getModifiers() & ~Modifier.FINAL); + fgField.set(null, featureGroupDao); + + Field epField = VendorLicenseFacadeImpl.class.getDeclaredField("entitlementPoolDao"); + epField.setAccessible(true); + modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(epField, epField.getModifiers() & ~Modifier.FINAL); + epField.set(null, entitlementPoolDao); + } catch(NoSuchFieldException | IllegalAccessException e) + { + org.testng.Assert.fail(); + } + } + + private FeatureGroupEntity createFeatureGroup() { + FeatureGroupEntity featureGroup = new FeatureGroupEntity(VLM_ID, VERSION01, USER); + featureGroup.setManufacturerReferenceNumber(null); + VersionInfo info = new VersionInfo(); + info.getViewableVersions().add(VERSION01); + info.setActiveVersion(VERSION01); + + Set entitlementPoolIds; + entitlementPoolIds = new HashSet<>(); + entitlementPoolIds.add(EP1); + + featureGroup.setEntitlementPoolIds(entitlementPoolIds); + return featureGroup; + } + private EntitlementPoolEntity createEP() { + EntitlementPoolEntity ep = new EntitlementPoolEntity(VLM_ID,VERSION01, EP1); + ep.setManufacturerReferenceNumber(MRN); + return ep; } + } -- cgit 1.2.3-korg