1 package org.openecomp.sdc.vendorlicense;
3 import org.junit.Assert;
4 import org.mockito.InjectMocks;
5 import org.mockito.Mock;
6 import org.mockito.MockitoAnnotations;
7 import org.mockito.Spy;
8 import org.openecomp.sdc.vendorlicense.dao.*;
9 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
10 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
11 import org.openecomp.sdc.vendorlicense.facade.impl.VendorLicenseFacadeImpl;
12 import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
13 import org.openecomp.sdc.versioning.VersioningManager;
14 import org.openecomp.sdc.versioning.dao.types.Version;
15 import org.openecomp.sdc.versioning.types.VersionInfo;
16 import org.testng.annotations.BeforeMethod;
17 import org.testng.annotations.Test;
19 import java.lang.reflect.Field;
20 import java.lang.reflect.Modifier;
21 import java.util.ArrayList;
22 import java.util.Collection;
23 import java.util.HashSet;
24 import java.util.List;
27 import static org.mockito.Matchers.anyObject;
28 import static org.mockito.Mockito.doReturn;
29 import static org.mockito.Mockito.never;
30 import static org.mockito.Mockito.verify;
33 * This test just verifies Feature Group Get and List APIs.
35 public class VendorLicenseFacadeImplTest {
36 //JUnit Test Cases using Mockito
37 private static final Version VERSION01 = new Version(0, 1);
38 public static final String EP1 = "ep1";
39 public static final String MRN = "mrn";
40 public static final String VLM_ID = "VLM_ID";
41 public static final String USER = "USER1";
45 private VendorLicenseModelDao vendorLicenseModelDao;
48 private LicenseAgreementDao licenseAgreementDao;
51 private FeatureGroupDao featureGroupDao;
54 private EntitlementPoolDao entitlementPoolDao;
57 private LicenseKeyGroupDao licenseKeyGroupDao;
60 private VersioningManager versioningManager;
64 private VendorLicenseFacadeImpl vendorLicenseFacadeImpl;
67 public void setUp() throws Exception{
68 MockitoAnnotations.initMocks(this);
72 public void testGetFeatureGroupWhenMRNNull () {
73 resetFieldModifiers();
75 FeatureGroupEntity featureGroup = createFeatureGroup();
77 VersionInfo info = new VersionInfo();
78 info.getViewableVersions().add(VERSION01);
79 info.setActiveVersion(VERSION01);
81 Set<String> entitlementPoolIds;
82 entitlementPoolIds = new HashSet<>();
83 entitlementPoolIds.add(EP1);
85 EntitlementPoolEntity ep = createEP();
87 featureGroup.setEntitlementPoolIds(entitlementPoolIds);
89 doReturn(info).when(vendorLicenseFacadeImpl).getVersionInfo(anyObject(),anyObject(),anyObject());
90 doReturn(featureGroup).when(featureGroupDao).get(featureGroup);
91 doReturn(ep).when(entitlementPoolDao).get(anyObject());
92 doReturn(MRN).when(entitlementPoolDao).getManufacturerReferenceNumber(anyObject());
93 FeatureGroupEntity retrieved = vendorLicenseFacadeImpl.getFeatureGroup(featureGroup, USER);
94 Assert.assertEquals(MRN, retrieved.getManufacturerReferenceNumber());
98 public void testListFeatureGroups () {
99 resetFieldModifiers();
101 FeatureGroupEntity featureGroup = createFeatureGroup();
103 Collection<FeatureGroupEntity> featureGroups = new ArrayList<FeatureGroupEntity>();
104 featureGroups.add(featureGroup);
106 VersionInfo info = new VersionInfo();
107 info.getViewableVersions().add(VERSION01);
108 info.setActiveVersion(VERSION01);
110 EntitlementPoolEntity ep = createEP();
112 doReturn(info).when(vendorLicenseFacadeImpl).getVersionInfo(anyObject(),anyObject(),anyObject());
113 doReturn(featureGroup).when(featureGroupDao).get(featureGroup);
114 doReturn(ep).when(entitlementPoolDao).get(anyObject());
115 doReturn(MRN).when(entitlementPoolDao).getManufacturerReferenceNumber(anyObject());
116 Collection<FeatureGroupEntity> retrieved = vendorLicenseFacadeImpl.listFeatureGroups(VLM_ID,
118 retrieved.stream().forEach(fg -> Assert.assertEquals(MRN,fg.getManufacturerReferenceNumber()));
121 private void resetFieldModifiers() {
123 Field fgField = VendorLicenseFacadeImpl.class.getDeclaredField("featureGroupDao");
124 fgField.setAccessible(true);
125 Field modifiersField = Field.class.getDeclaredField("modifiers");
126 modifiersField.setAccessible(true);
127 modifiersField.setInt(fgField, fgField.getModifiers() & ~Modifier.FINAL);
128 fgField.set(null, featureGroupDao);
130 Field epField = VendorLicenseFacadeImpl.class.getDeclaredField("entitlementPoolDao");
131 epField.setAccessible(true);
132 modifiersField = Field.class.getDeclaredField("modifiers");
133 modifiersField.setAccessible(true);
134 modifiersField.setInt(epField, epField.getModifiers() & ~Modifier.FINAL);
135 epField.set(null, entitlementPoolDao);
136 } catch(NoSuchFieldException | IllegalAccessException e)
138 org.testng.Assert.fail();
142 private FeatureGroupEntity createFeatureGroup() {
143 FeatureGroupEntity featureGroup = new FeatureGroupEntity(VLM_ID, VERSION01, USER);
144 featureGroup.setManufacturerReferenceNumber(null);
145 VersionInfo info = new VersionInfo();
146 info.getViewableVersions().add(VERSION01);
147 info.setActiveVersion(VERSION01);
149 Set<String> entitlementPoolIds;
150 entitlementPoolIds = new HashSet<>();
151 entitlementPoolIds.add(EP1);
153 featureGroup.setEntitlementPoolIds(entitlementPoolIds);
157 private EntitlementPoolEntity createEP() {
158 EntitlementPoolEntity ep = new EntitlementPoolEntity(VLM_ID,VERSION01, EP1);
159 ep.setManufacturerReferenceNumber(MRN);