1 package org.openecomp.sdc.vendorsoftwareproduct.impl;
3 import org.mockito.InjectMocks;
4 import org.mockito.Mock;
5 import org.mockito.Mockito;
6 import org.mockito.MockitoAnnotations;
7 import org.mockito.Spy;
8 import org.openecomp.sdc.common.errors.CoreException;
9 import org.openecomp.sdc.logging.api.Logger;
10 import org.openecomp.sdc.logging.api.LoggerFactory;
11 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
12 import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
13 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
14 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
17 import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder;
18 import org.openecomp.sdc.versioning.dao.types.Version;
19 import org.testng.Assert;
20 import org.testng.annotations.BeforeClass;
21 import org.testng.annotations.Test;
23 import java.util.ArrayList;
24 import java.util.Collection;
25 import java.util.List;
27 public class ComponentDependencyModelTest {
29 private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName());
33 private ComponentDependencyModelManagerImpl componentDependencyModelManager;
35 private VendorSoftwareProductManager vendorSoftwareProductManager;
37 private VendorSoftwareProductDao vendorSoftwareProductDao;
39 private ComponentDao componentDao;
41 private ComponentManager componentManager;
43 private static String vsp1Id;
44 private static String sourceComp1Id;
45 private static String sourceComp2Id;
46 private static String sourceComp3Id;
47 private static String sourceComp4Id;
48 private static final String USER1 = "TestUser1";
49 private static final String USER2 = "TestUser2";
50 private static final Version VERSION01 = new Version(0, 1);
51 private static String modelId = "model1";
56 MockitoAnnotations.initMocks(this);
59 public static VspDetails createVspDetails(String id, Version version, String name, String desc,
60 String vendorName, String vlm, String icon,
61 String category, String subCategory,
62 String licenseAgreement, List<String> featureGroups
64 VspDetails vspDetails = new VspDetails(id, version);
65 vspDetails.setName(name);
66 vspDetails.setDescription(desc);
67 vspDetails.setIcon(icon);
68 vspDetails.setCategory(category);
69 vspDetails.setSubCategory(subCategory);
70 vspDetails.setVendorName(vendorName);
71 vspDetails.setVendorId(vlm);
72 vspDetails.setVlmVersion(new Version(1, 0));
73 vspDetails.setLicenseAgreement(licenseAgreement);
74 vspDetails.setFeatureGroups(featureGroups);
79 public void testCreateNegative_NoSourceId() {
80 List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>();
81 entities.add(createModelEntity(null, sourceComp2Id));
82 testCreate_negative(entities, vsp1Id, VERSION01, USER1,
83 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().id(),
84 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().message());
87 entities.add(createModelEntity("", sourceComp2Id));
88 testCreate_negative(entities, vsp1Id, VERSION01, USER1,
89 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().id(),
90 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().message());
94 public void testCreateNegative_SameSourceTarget() {
95 List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>();
96 entities.add(createModelEntity("sourceComp1Id", "sourceComp1Id"));
97 testCreate_negative(entities, vsp1Id, VERSION01, USER1,
98 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder().id(),
99 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder().message());
103 public void testCreate() {
104 List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>();
105 entities.add(createModelEntity("sourceComp1Id", "sourceComp2Id"));
106 entities.add(createModelEntity("sourceComp3Id", "sourceComp4Id"));
108 componentDependencyModelManager.createComponentDependencyModel(entities, vsp1Id, VERSION01,
110 Mockito.verify(vendorSoftwareProductDao, Mockito.times(1)).createComponentDependencyModel
115 private ComponentDependencyModelEntity createModelEntity(String sourceId, String targetId) {
116 ComponentDependencyModelEntity entity =
117 new ComponentDependencyModelEntity(vsp1Id, VERSION01, modelId);
118 entity.setSourceComponentId(sourceId);
119 entity.setTargetComponentId(targetId);
120 entity.setRelation("dependsOn");
124 private Collection<ComponentDependencyModelEntity> getDependencyModel(String vspId,
127 return componentDependencyModelManager.list(vspId, version, user);
130 private void testCreate_negative(List<ComponentDependencyModelEntity> entities, String vspId,
131 Version version, String user,
132 String expectedErrorCode, String expectedErrorMsg) {
134 componentDependencyModelManager.createComponentDependencyModel(entities, vspId, version,
137 } catch (CoreException exception) {
138 log.debug("",exception);
139 Assert.assertEquals(exception.code().id(), expectedErrorCode);
140 Assert.assertEquals(exception.getMessage(), expectedErrorMsg);