Sorted out unit-test libraries in onboarding
[sdc.git] / openecomp-be / lib / openecomp-sdc-vendor-software-product-lib / openecomp-sdc-vendor-software-product-core / src / test / java / org / openecomp / sdc / vendorsoftwareproduct / dao / ServiceModelDaoFactoryTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.vendorsoftwareproduct.dao;
22
23 import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
24 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflict;
25 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
26 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ItemVersionConflict;
27 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
28 import com.amdocs.zusammen.commons.health.data.HealthInfo;
29 import com.amdocs.zusammen.datatypes.Id;
30 import com.amdocs.zusammen.datatypes.SessionContext;
31 import com.amdocs.zusammen.datatypes.item.ElementContext;
32 import com.amdocs.zusammen.datatypes.item.Info;
33 import com.amdocs.zusammen.datatypes.item.Item;
34 import com.amdocs.zusammen.datatypes.item.ItemVersion;
35 import com.amdocs.zusammen.datatypes.item.ItemVersionData;
36 import com.amdocs.zusammen.datatypes.item.ItemVersionStatus;
37 import com.amdocs.zusammen.datatypes.item.Resolution;
38 import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
39 import com.amdocs.zusammen.datatypes.itemversion.Tag;
40 import java.io.ByteArrayInputStream;
41 import java.util.ArrayList;
42 import java.util.Collection;
43 import java.util.HashMap;
44 import java.util.Map;
45 import java.util.Optional;
46 import org.junit.After;
47 import org.junit.Assert;
48 import org.junit.Before;
49 import org.junit.Test;
50 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
51 import org.onap.sdc.tosca.services.YamlUtil;
52 import org.openecomp.core.utilities.CommonMethods;
53 import org.openecomp.core.utilities.file.FileContentHandler;
54 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
55 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
56 import org.openecomp.sdc.datatypes.model.ElementType;
57 import org.openecomp.sdc.model.impl.zusammen.ServiceModelDaoZusammenImpl;
58 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
59 import org.openecomp.sdc.versioning.dao.types.Version;
60
61 public class ServiceModelDaoFactoryTest {
62
63   private static final String vspId = CommonMethods.nextUuId();
64   private static final Version version = Version.valueOf("1.0");
65   private static final String baseServiceTemplateName = "baseYaml.yaml";
66   private static String artifact001;
67   private static final String tenant = "dox";
68
69   @Before
70   public void setUp(){
71     SessionContextProviderFactory.getInstance().createInterface().create("test", tenant);
72   }
73
74   @After
75   public void tearDown(){
76     SessionContextProviderFactory.getInstance().createInterface().close();
77   }
78
79   @Test
80   public void storeServiceModelTest() {
81
82     ItemVersion itemVersionmock = new ItemVersion();
83     itemVersionmock.setId(new Id());
84
85     ZusammenAdaptorMock zusammenAdaptor = new ZusammenAdaptorMock();
86     ServiceModelDaoZusammenImpl serviceModelDaoZusammen = new ServiceModelDaoZusammenImpl(
87         zusammenAdaptor);
88
89     zusammenAdaptor.setItemVersion(itemVersionmock);
90     ToscaServiceModel model = getToscaServiceModel();
91     serviceModelDaoZusammen.storeServiceModel(vspId, version, model);
92   }
93
94   @Test
95   public void getServiceModelTest() {
96
97     ItemVersion itemVersionmock = new ItemVersion();
98     itemVersionmock.setId(new Id());
99
100     ElementInfo elementInfo = new ElementInfo();
101     Info info = new Info();
102     info.addProperty("base", "baseElement");
103     elementInfo.setInfo(info);
104
105     ElementInfo artifactElementInfo = new ElementInfo();
106     artifactElementInfo.setInfo(new Info());
107     artifactElementInfo.getInfo().setName(ElementType.Artifacts.name());
108     ElementInfo templateElementInfo = new ElementInfo();
109     templateElementInfo.setInfo(new Info());
110     templateElementInfo.getInfo().setName(ElementType.Templates.name());
111
112     ElementInfo serviceModelElementInfo = new ElementInfo();
113     serviceModelElementInfo.setInfo(new Info());
114     serviceModelElementInfo.getInfo().setName(ElementType.ServiceModel.name());
115     ZusammenElement element = new ZusammenElement();
116     ServiceTemplate serviceTemplate = new ServiceTemplate();
117     YamlUtil yamlUtil = new YamlUtil();
118     element.setData(new ByteArrayInputStream(yamlUtil.objectToYaml(serviceTemplate).getBytes()));
119     info = new Info();
120     info.setName("dataFileName");
121     element.setInfo(info);
122     ZusammenAdaptorMock zusammenAdaptor = new ZusammenAdaptorMock();
123     ServiceModelDaoZusammenImpl serviceModelDaoZusammen = new ServiceModelDaoZusammenImpl(
124         zusammenAdaptor);
125
126     zusammenAdaptor.setItemVersion(itemVersionmock);
127     zusammenAdaptor.addElementInfo("null" + ElementType.ServiceModel.name(), elementInfo);
128     zusammenAdaptor.addElementInfo("null" + ElementType.Artifacts.name(), artifactElementInfo);
129     zusammenAdaptor.addElementInfo("null" + ElementType.Templates.name(), templateElementInfo);
130     zusammenAdaptor.addElementInfo("null" + ElementType.ServiceModel.name(),
131         serviceModelElementInfo);
132     zusammenAdaptor.addElement(element);
133
134     ToscaServiceModel model =
135         serviceModelDaoZusammen.getServiceModel(vspId, version);
136     Assert.assertNotNull(model);
137
138     setArtifact(model);
139     Assert.assertEquals(artifact001,"dataFileName");
140
141   }
142
143   private static void setArtifact(ToscaServiceModel model) {
144     artifact001 =
145         (String) (model).getArtifactFiles().getFileList().toArray()[0];
146   }
147
148   private ToscaServiceModel getToscaServiceModel() {
149
150     Map<String, ServiceTemplate> serviceTemplates = getServiceTemplates(baseServiceTemplateName);
151     FileContentHandler artifacts = getArtifacts();
152     return new ToscaServiceModel(artifacts, serviceTemplates, baseServiceTemplateName);
153   }
154
155
156   private Map<String, ServiceTemplate> getServiceTemplates(String base) {
157
158     Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
159
160     serviceTemplates.put(base, getServiceTemplate());
161     serviceTemplates.put("SERV1", getServiceTemplate());
162     serviceTemplates.put("SERV2", getServiceTemplate());
163     serviceTemplates.put("SERV3", getServiceTemplate());
164     serviceTemplates.put("SERV4", getServiceTemplate());
165
166     return serviceTemplates;
167   }
168
169   public FileContentHandler getArtifacts() {
170     Map<String, byte[]> artifacts = new HashMap<>();
171     artifacts.put("art1", "this is art1".getBytes());
172     artifacts.put("art2", ("this is art2 desc:" + CommonMethods.nextUuId()).getBytes());
173     artifacts.put("art3", ("this is art3 desc:" + CommonMethods.nextUuId()).getBytes());
174     artifacts.put("art4", ("this is art4 desc:" + CommonMethods.nextUuId()).getBytes());
175
176     FileContentHandler fileContentHandler = new FileContentHandler();
177     fileContentHandler.putAll(artifacts);
178     return fileContentHandler;
179   }
180
181   private ServiceTemplate getServiceTemplate() {
182     ServiceTemplate serviceTemplate = new ServiceTemplate();
183     serviceTemplate.setTosca_definitions_version("version 1.0");
184     serviceTemplate.setDescription(CommonMethods.nextUuId());
185     return serviceTemplate;
186   }
187
188   private class ZusammenAdaptorMock implements ZusammenAdaptor {
189
190     private ItemVersion itemVersion;
191     private Map<String, ElementInfo> elementInfoMap = new HashMap<>();
192     private Collection<Element> elements = new ArrayList<>();
193
194     private void setItemVersion(ItemVersion itemVersion) {
195       this.itemVersion = itemVersion;
196     }
197
198     private void addElementInfo(String key, ElementInfo elementInfo) {
199       elementInfoMap.put(key, elementInfo);
200     }
201
202     private void addElement(Element element) {
203       elements.add(element);
204     }
205
206     @Override
207     public Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId) {
208       return null;
209     }
210
211     @Override
212     public ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId) {
213       return null;
214     }
215
216     @Override
217     public Optional<Element> getElement(SessionContext context, ElementContext elementContext,
218                                         String elementId) {
219       return Optional.empty();
220     }
221
222     @Override
223     public Optional<Element> getElementByName(SessionContext context,
224                                               ElementContext elementContext,
225                                               Id parentElementId, String elementName) {
226       return Optional.empty();
227     }
228
229     @Override
230     public Collection<ElementInfo> listElements(SessionContext context,
231                                                 ElementContext elementContext,
232                                                 Id parentElementId) {
233       return null;
234     }
235
236     @Override
237     public Collection<Element> listElementData(SessionContext context,
238                                                ElementContext elementContext,
239                                                Id parentElementId) {
240       return elements;
241     }
242
243     @Override
244     public Collection<ElementInfo> listElementsByName(SessionContext context,
245                                                       ElementContext elementContext,
246                                                       Id parentElementId, String elementName) {
247
248       if (elementName.equals(ElementType.VspModel.name())) {
249         return elementInfoMap.values();
250       }
251
252       return null;
253     }
254
255     @Override
256     public Optional<ElementInfo> getElementInfoByName(SessionContext context,
257                                                       ElementContext elementContext,
258                                                       Id parentElementId, String elementName) {
259
260       if (elementName.equals(ElementType.Templates.name())) {
261         return Optional.ofNullable(elementInfoMap.get("null" + elementName));
262       } else if (elementName.equals(ElementType.Artifacts.name())) {
263         return Optional.ofNullable(elementInfoMap.get("null" + elementName));
264       }
265
266       return Optional.empty();
267     }
268
269     @Override
270     public Element saveElement(SessionContext context, ElementContext elementContext,
271                                ZusammenElement element, String message) {
272       return null;
273     }
274
275     @Override
276     public void resolveElementConflict(SessionContext context, ElementContext elementContext,
277                                        ZusammenElement element, Resolution resolution) {
278
279     }
280
281     @Override
282     public Collection<HealthInfo> checkHealth(SessionContext context) {
283       return null;
284     }
285
286     @Override
287     public Id createItem(SessionContext context, Info info) {
288       return null;
289     }
290
291     @Override
292     public void updateItem(SessionContext context, Id itemId, Info info) {
293
294     }
295
296     @Override
297     public Id createVersion(SessionContext context, Id itemId, Id baseVersionId,
298                             ItemVersionData itemVersionData) {
299       return null;
300     }
301
302     @Override
303     public void updateVersion(SessionContext context, Id itemId, Id versionId,
304                               ItemVersionData itemVersionData) {
305
306     }
307
308     @Override
309     public ItemVersion getVersion(SessionContext context, Id itemId, Id versionId) {
310       return null;
311     }
312
313     @Override
314     public ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId) {
315       return null;
316     }
317
318     @Override
319     public ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId) {
320       return null;
321     }
322
323     @Override
324     public void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag) {
325
326     }
327
328     @Override
329     public void resetVersionHistory(SessionContext context, Id itemId, Id versionId,
330                                     String changeRef) {
331
332
333     }
334
335     /*@Override
336     public void revertVersionToRevision(SessionContext context, Id itemId, Id versionId,
337                                         Id revisionId) {
338
339     }
340
341     @Override
342     public ItemVersionRevisions listVersionRevisions(SessionContext context, Id itemId,
343                                                      Id versionId) {
344       return null;
345     }*/
346
347     @Override
348     public void publishVersion(SessionContext context, Id itemId, Id versionId, String message) {
349
350     }
351
352     @Override
353     public void syncVersion(SessionContext sessionContext, Id itemId, Id versionId) {
354
355     }
356
357     @Override
358     public void forceSyncVersion(SessionContext context, Id itemId, Id versionId) {
359
360     }
361
362     @Override
363     public void cleanVersion(SessionContext sessionContext, Id itemId, Id versionId) {
364
365     }
366
367     @Override
368     public Optional<ElementInfo> getElementInfo(SessionContext context,
369                                                 ElementContext elementContext,
370                                                 Id elementId) {
371       return Optional.empty();
372     }
373
374     @Override
375     public String getVersion(SessionContext sessionContext) {
376       return null;
377     }
378
379     @Override
380     public void revert(SessionContext sessionContext, Id itemId, Id versionId,
381                        Id revisionId) {
382
383     }
384
385     @Override
386     public ItemVersionRevisions listRevisions(SessionContext sessionContext, Id itemId,
387                                               Id versionId) {
388       return null;
389     }
390
391     @Override
392     public Optional<ElementConflict> getElementConflict(SessionContext context,
393                                                         ElementContext elementContext,
394                                                         Id id) {
395       return Optional.empty();
396     }
397
398     @Override
399     public Collection<Item> listItems(SessionContext context) {
400       return null;
401     }
402
403     @Override
404     public Item getItem(SessionContext context, Id itemId) {
405       return null;
406     }
407
408     @Override
409     public void deleteItem(SessionContext context, Id itemId) {
410
411     }
412   }
413 }