diff options
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-license-manager')
5 files changed, 350 insertions, 182 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup deleted file mode 100644 index 85b34a187e..0000000000 --- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup +++ /dev/null @@ -1,77 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <name>openecomp-sdc-vendor-license-manager</name> - <artifactId>openecomp-sdc-vendor-license-manager</artifactId> - - <parent> - <artifactId>backend</artifactId> - <groupId>org.openecomp.sdc</groupId> - <version>1.0-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>org.openecomp.sdc</groupId> - <artifactId>openecomp-sdc-vendor-license-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-all</artifactId> - <scope>test</scope> - <version>1.10.19</version> - </dependency> - <dependency> - <groupId>org.testng</groupId> - <artifactId>testng</artifactId> - <scope>test</scope> - <version>6.8.5</version> - <exclusions> - <exclusion> - <artifactId>snakeyaml</artifactId> - <groupId>org.yaml</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - <version>4.11</version> - </dependency> - <dependency> - <groupId>javax.el</groupId> - <artifactId>javax.el-api</artifactId> - <version>${javax.el-api.version}</version> - </dependency> - <dependency> - <groupId>org.glassfish.web</groupId> - <artifactId>javax.el</artifactId> - <version>2.2.4</version> - </dependency> - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>woodstox-core-asl</artifactId> - <version>4.4.1</version> - </dependency> - <dependency> - <groupId>org.openecomp.sdc</groupId> - <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId> - <version>1.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.dataformat</groupId> - <artifactId>jackson-dataformat-xml</artifactId> - <version>2.7.4</version> - </dependency> - <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>${commons.io.version}</version> - </dependency> - - </dependencies> -</project>
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java index 622ff02501..b570170985 100644 --- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java +++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java @@ -365,9 +365,7 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { String user) { mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId); mdcDataDebugMessage.debugExitMessage("VLM id", vlmId); - return featureGroupDao.list(new FeatureGroupEntity(vlmId, VersioningUtil - .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user), - null)); + return vendorLicenseFacade.listFeatureGroups(vlmId, version, user); } @Override @@ -487,15 +485,6 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { .debugEntryMessage("VLM id", entitlementPool.getVendorLicenseModelId()); mdcDataDebugMessage .debugExitMessage("VLM id", entitlementPool.getVendorLicenseModelId()); - validateCreateDate(entitlementPool); - return vendorLicenseFacade.createEntitlementPool(entitlementPool, user); - } - - private void validateCreateDate(EntitlementPoolEntity entitlementPool){ - mdcDataDebugMessage.debugEntryMessage("Start date and end date", entitlementPool.getStartDate - ()+" "+entitlementPool.getExpiryDate()); - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'"); entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z" @@ -504,40 +493,49 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z" : null) : null); - if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() != null) { - if (LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay().isBefore - (LocalDate.now().atStartOfDay()) || - LocalDate.parse(entitlementPool.getExpiryDate(), formatter).atStartOfDay() - .isEqual(LocalDate.now().atStartOfDay()) || - LocalDate.parse(entitlementPool.getExpiryDate(), formatter) - .isBefore(LocalDate.parse(entitlementPool.getStartDate(), formatter))) { + validateCreateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(), + entitlementPool.getVendorLicenseModelId()); + return vendorLicenseFacade.createEntitlementPool(entitlementPool, user); + } + + private void validateCreateDate(String startDate, String expiryDate, String vendorLicenseModelId){ + mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate + +" "+expiryDate); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'"); + + if(startDate != null && expiryDate != null) { + if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore + (LocalDate.now().atStartOfDay()) || LocalDate.parse(expiryDate, formatter).atStartOfDay() + .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) || LocalDate + .parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) { MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(), LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE); throw new CoreException( - new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId()) + new InvalidDateErrorBuilder(vendorLicenseModelId) .build()); } } - if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() == null) { - if (LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay().isBefore + if(startDate != null && expiryDate == null) { + if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore (LocalDate.now().atStartOfDay())) { MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(), LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE); throw new CoreException( - new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId()) + new InvalidDateErrorBuilder(vendorLicenseModelId) .build()); } } - if(entitlementPool.getStartDate() == null && entitlementPool.getExpiryDate() != null) { + if(startDate == null && expiryDate != null) { MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(), LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE); throw new CoreException( - new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId()) + new InvalidDateErrorBuilder(vendorLicenseModelId) .build()); } @@ -545,39 +543,31 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { mdcDataDebugMessage.debugExitMessage(null,null); } - private void validateUpdateDate(EntitlementPoolEntity entitlementPool){ - mdcDataDebugMessage.debugEntryMessage("Start date and end date", entitlementPool.getStartDate - ()+" "+entitlementPool.getExpiryDate()); + private void validateUpdateDate(String startDate, String expiryDate, String vendorLicenseModelId){ + mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate + +" "+ expiryDate); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'"); - entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool - .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z" - : null) : null); - entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool - .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z" - : null) : null); - - if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() != null) { - if (LocalDate.parse(entitlementPool.getExpiryDate(), formatter).atStartOfDay() - .isEqual(LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay()) || - LocalDate.parse(entitlementPool.getExpiryDate(), formatter) - .isBefore(LocalDate.parse(entitlementPool.getStartDate(), formatter))) { + if(startDate != null && expiryDate != null) { + if (LocalDate.parse(expiryDate, formatter).atStartOfDay() + .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) || + LocalDate.parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) { MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(), LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE); throw new CoreException( - new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId()) + new InvalidDateErrorBuilder(vendorLicenseModelId) .build()); } } - if(entitlementPool.getStartDate() == null && entitlementPool.getExpiryDate() != null) { + if(startDate == null && expiryDate != null) { MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(), LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE); throw new CoreException( - new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId()) + new InvalidDateErrorBuilder(vendorLicenseModelId) .build()); } @@ -590,7 +580,15 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool .getVendorLicenseModelId(), entitlementPool.getId()); - validateUpdateDate(entitlementPool); + entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool + .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z" + : null) : null); + entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool + .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z" + : null) : null); + + validateUpdateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(), + entitlementPool.getVendorLicenseModelId()); Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(), getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write, user), user); @@ -692,6 +690,16 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { mdcDataDebugMessage.debugExitMessage("VLM id", licenseKeyGroup .getVendorLicenseModelId()); + + licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup + .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z" + : null) : null); + licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup + .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z" + : null) : null); + + validateCreateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(), + licenseKeyGroup.getVendorLicenseModelId()); return vendorLicenseFacade.createLicenseKeyGroup(licenseKeyGroup, user); } @@ -700,6 +708,16 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager { mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup .getVendorLicenseModelId(), licenseKeyGroup.getId()); + licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup + .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z" + : null) : null); + licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup + .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z" + : null) : null); + + validateUpdateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(), + licenseKeyGroup.getVendorLicenseModelId()); + Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(), getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, user), user); 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<OperationalScope> 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<OperationalScope> 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<OperationalScope> 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<OperationalScope> 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<OperationalScope> 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<OperationalScope> 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<OperationalScope> 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<OperationalScope> 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> 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<String> - licenseKeyGroupIds, Set<String> entitlementPoolIds, Set<String> - 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<String> 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<String> entitlementPoolIds; entitlementPoolIds = new HashSet<>(); - entitlementPoolIds.add("ep1"); - - Set<String> 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<String> licenseKeyGroupIds; - licenseKeyGroupIds = new HashSet<>(); - licenseKeyGroupIds.add("lkg1"); + public void testListFeatureGroups () { + resetFieldModifiers(); - Set<String> entitlementPoolIds; - entitlementPoolIds = new HashSet<>(); - entitlementPoolIds.add("ep1"); + FeatureGroupEntity featureGroup = createFeatureGroup(); - Set<String> referencingLicenseAgreements; - referencingLicenseAgreements = new HashSet<>(); - referencingLicenseAgreements.add("la1"); + Collection<FeatureGroupEntity> featureGroups = new ArrayList<FeatureGroupEntity>(); + 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<FeatureGroupEntity> 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<String> 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; } + } |