b8161de6b28aed520f68704fba2ce7964835c719
[so.git] /
1 package org.onap.so.adapters.catalogdb.catalogrest;
2
3 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
4 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
5 import java.io.IOException;
6 import java.nio.file.Files;
7 import java.nio.file.Paths;
8 import java.util.ArrayList;
9 import java.util.HashSet;
10 import java.util.List;
11 import java.util.Set;
12 import org.junit.Test;
13 import org.onap.so.adapters.catalogdb.rest.ServiceMapper;
14 import org.onap.so.db.catalog.beans.HeatTemplate;
15 import org.onap.so.db.catalog.beans.HeatTemplateParam;
16 import org.onap.so.db.catalog.beans.VfModuleCustomization;
17 import org.onap.so.rest.catalog.beans.Service;
18 import wiremock.com.fasterxml.jackson.core.JsonParseException;
19 import wiremock.com.fasterxml.jackson.databind.JsonMappingException;
20 import wiremock.com.fasterxml.jackson.databind.ObjectMapper;
21
22 public class ServiceMapperTest {
23
24     private ServiceMapper serviceMapper = new ServiceMapper();
25
26     @Test
27     public void service_map_test() throws JsonParseException, JsonMappingException, IOException {
28         Service actual = serviceMapper.mapService(getTestService(), 2);
29         assertThat(actual, sameBeanAs(getExpectedService()));
30     }
31
32     private Service getExpectedService() throws JsonParseException, JsonMappingException, IOException {
33         ObjectMapper mapper = new ObjectMapper();
34         return mapper.readValue(getJson("ExpectedService.json"), Service.class);
35     }
36
37
38     private org.onap.so.db.catalog.beans.Service getTestService() {
39         org.onap.so.db.catalog.beans.Service testService = new org.onap.so.db.catalog.beans.Service();
40         testService.setCategory("category");
41         testService.setDescription("description");
42         testService.setDistrobutionStatus("distrobutionStatus");
43         testService.setEnvironmentContext("environmentContext");
44         testService.setModelInvariantUUID("modelInvariantUUID");
45         testService.setModelName("modelName");
46         testService.setModelUUID("modelUUID");
47         testService.setModelVersion("modelVersion");
48         testService.setServiceType("serviceType");
49         testService.setServiceRole("serviceRole");
50         testService.getVnfCustomizations().add(getTestVnfCustomization());
51         return testService;
52     }
53
54     private org.onap.so.db.catalog.beans.VnfResourceCustomization getTestVnfCustomization() {
55         org.onap.so.db.catalog.beans.VnfResourceCustomization test =
56                 new org.onap.so.db.catalog.beans.VnfResourceCustomization();
57         test.setId(1);
58         test.setAvailabilityZoneMaxCount(11);
59         test.setMaxInstances(3);
60         test.setMinInstances(1);
61         test.setModelCustomizationUUID("modelCustomizationUUID");
62         test.setModelInstanceName("modelInstanceName");
63         test.setMultiStageDesign("multiStageDesign");
64         test.setNfFunction("nfFunction");
65         test.setNfNamingCode("nfNamingCode");
66         test.setNfRole("nfRole");
67         test.setNfType("nfType");
68         test.setService(new org.onap.so.db.catalog.beans.Service());
69         test.setVnfResources(getTestVnfResource());
70         test.setVfModuleCustomizations(getTestVfModuleCust());
71         return test;
72     }
73
74     private List<VfModuleCustomization> getTestVfModuleCust() {
75         List<VfModuleCustomization> test = new ArrayList<>();
76         VfModuleCustomization testVfMod = new VfModuleCustomization();
77         testVfMod.setAvailabilityZoneCount(10);
78         testVfMod.setInitialCount(1);
79         testVfMod.setLabel("label");
80         testVfMod.setMaxInstances(3);
81         testVfMod.setMinInstances(1);
82         testVfMod.setModelCustomizationUUID("modelCustomizationUUID");
83         org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
84         vfModule.setDescription("description");
85         vfModule.setIsBase(false);
86         vfModule.setModelInvariantUUID("modelInvariantUUID");
87         vfModule.setModelName("modelName");
88         vfModule.setModelUUID("modelUUID");
89         vfModule.setModelVersion("modelVersion");
90         HeatTemplate moduleHeatTemplate = new HeatTemplate();
91         moduleHeatTemplate.setArtifactChecksum("artifactChecksum");
92         moduleHeatTemplate.setArtifactUuid("artifactUuid");
93         List<HeatTemplate> childTemplates;
94         // moduleHeatTemplate.setChildTemplates(childTemplates);
95         moduleHeatTemplate.setDescription("description");
96         Set<HeatTemplateParam> parameters = new HashSet<>();
97         HeatTemplateParam heatParam = new HeatTemplateParam();
98         heatParam.setHeatTemplateArtifactUuid("heatTemplateArtifactUuid");
99         heatParam.setParamAlias("paramAlias");
100         heatParam.setParamName("paramName");
101         heatParam.setParamType("paramType");
102         heatParam.setRequired(false);
103         parameters.add(heatParam);
104         moduleHeatTemplate.setParameters(parameters);
105         moduleHeatTemplate.setTemplateBody("templateBody");
106         moduleHeatTemplate.setTemplateName("templateName");
107         moduleHeatTemplate.setTimeoutMinutes(1000);
108         moduleHeatTemplate.setVersion("version");
109         vfModule.setModuleHeatTemplate(moduleHeatTemplate);
110         testVfMod.setVfModule(vfModule);
111         test.add(testVfMod);
112         return test;
113     }
114
115     private org.onap.so.db.catalog.beans.VnfResource getTestVnfResource() {
116         org.onap.so.db.catalog.beans.VnfResource test = new org.onap.so.db.catalog.beans.VnfResource();
117         test.setCategory("category");
118         test.setDescription("description");
119         test.setModelInvariantUUID("modelInvariantUUID");
120         test.setModelName("modelName");
121         test.setModelUUID("modelUUID");
122         test.setModelVersion("modelVersion");
123         test.setAicVersionMax("cloudVersionMax");
124         test.setAicVersionMin("cloudVersionMin");
125         test.setOrchestrationMode("orchestrationMode");
126         test.setSubCategory("subCategory");
127         test.setToscaNodeType("toscaNodeType");
128         return test;
129     }
130
131     private String getJson(String filename) throws IOException {
132         return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));
133     }
134 }