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.core.utilities.CommonMethods;
9 import org.openecomp.sdc.common.errors.CoreException;
10 import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManager;
11 import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManagerFactory;
12 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
13 import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
14 import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
15 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
16 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
17 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
18 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
19 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
20 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
21 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
22 import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentDependencyModelErrorBuilder;
23 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
24 import org.openecomp.sdc.versioning.dao.types.Version;
25 import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
26 import org.testng.Assert;
27 import org.testng.annotations.BeforeClass;
28 import org.testng.annotations.Test;
30 import java.util.ArrayList;
31 import java.util.Collection;
32 import java.util.List;
34 import static org.mockito.Mockito.doReturn;
36 public class ComponentDependencyModelTest {
40 private ComponentDependencyModelManagerImpl componentDependencyModelManager;
42 private VendorSoftwareProductManager vendorSoftwareProductManager;
44 private VendorSoftwareProductDao vendorSoftwareProductDao;
46 private ComponentDao componentDao;
48 private ComponentManager componentManager;
50 private static String vsp1Id;
51 private static String sourceComp1Id;
52 private static String sourceComp2Id;
53 private static String sourceComp3Id;
54 private static String sourceComp4Id;
55 private static final String USER1 = "TestUser1";
56 private static final String USER2 = "TestUser2";
57 private static final Version VERSION01 = new Version(0, 1);
58 private static String modelId = "model1";
63 MockitoAnnotations.initMocks(this);
66 public static VspDetails createVspDetails(String id, Version version, String name, String desc,
67 String vendorName, String vlm, String icon,
68 String category, String subCategory,
69 String licenseAgreement, List<String> featureGroups
71 VspDetails vspDetails = new VspDetails(id, version);
72 vspDetails.setName(name);
73 vspDetails.setDescription(desc);
74 vspDetails.setIcon(icon);
75 vspDetails.setCategory(category);
76 vspDetails.setSubCategory(subCategory);
77 vspDetails.setVendorName(vendorName);
78 vspDetails.setVendorId(vlm);
79 vspDetails.setVlmVersion(new Version(1, 0));
80 vspDetails.setLicenseAgreement(licenseAgreement);
81 vspDetails.setFeatureGroups(featureGroups);
86 public void testCreateNegative_NoSourceId() {
87 List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>();
88 entities.add(createModelEntity(null, sourceComp2Id));
89 testCreate_negative(entities, vsp1Id, VERSION01, USER1,
90 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().id(),
91 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().message());
93 entities.removeAll(entities);
94 entities.add(createModelEntity("", sourceComp2Id));
95 testCreate_negative(entities, vsp1Id, VERSION01, USER1,
96 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().id(),
97 ComponentDependencyModelErrorBuilder.getNoSourceComponentErrorBuilder().message());
101 public void testCreateNegative_SameSourceTarget() {
102 List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>();
103 entities.add(createModelEntity("sourceComp1Id", "sourceComp1Id"));
104 testCreate_negative(entities, vsp1Id, VERSION01, USER1,
105 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder().id(),
106 ComponentDependencyModelErrorBuilder.getSourceTargetComponentEqualErrorBuilder().message());
110 public void testCreate() {
111 List<ComponentDependencyModelEntity> entities = new ArrayList<ComponentDependencyModelEntity>();
112 entities.add(createModelEntity("sourceComp1Id", "sourceComp2Id"));
113 entities.add(createModelEntity("sourceComp3Id", "sourceComp4Id"));
115 componentDependencyModelManager.createComponentDependencyModel(entities, vsp1Id, VERSION01,
117 Mockito.verify(vendorSoftwareProductDao, Mockito.times(1)).createComponentDependencyModel
122 private ComponentDependencyModelEntity createModelEntity(String sourceId, String targetId) {
123 ComponentDependencyModelEntity entity =
124 new ComponentDependencyModelEntity(vsp1Id, VERSION01, modelId);
125 entity.setSourceComponentId(sourceId);
126 entity.setTargetComponentId(targetId);
127 entity.setRelation("dependsOn");
131 private Collection<ComponentDependencyModelEntity> getDependencyModel(String vspId,
134 return componentDependencyModelManager.list(vspId, version, user);
137 private void testCreate_negative(List<ComponentDependencyModelEntity> entities, String vspId,
138 Version version, String user,
139 String expectedErrorCode, String expectedErrorMsg) {
141 componentDependencyModelManager.createComponentDependencyModel(entities, vspId, version,
144 } catch (CoreException exception) {
145 Assert.assertEquals(exception.code().id(), expectedErrorCode);
146 Assert.assertEquals(exception.getMessage(), expectedErrorMsg);