2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.onap.sdc.activityspec.be.dao.impl;
19 import com.amdocs.zusammen.adaptor.inbound.api.types.item.*;
20 import com.amdocs.zusammen.commons.health.data.HealthInfo;
21 import com.amdocs.zusammen.datatypes.Id;
22 import com.amdocs.zusammen.datatypes.SessionContext;
23 import com.amdocs.zusammen.datatypes.item.*;
24 import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
25 import com.amdocs.zusammen.datatypes.itemversion.Tag;
26 import org.onap.sdc.activityspec.be.dao.impl.ActivitySpecDaoZusammenImpl.InfoPropertyName;
27 import org.onap.sdc.activityspec.be.dao.types.ActivitySpecEntity;
28 import org.onap.sdc.activityspec.be.datatypes.ActivitySpecData;
29 import org.onap.sdc.activityspec.be.datatypes.ActivitySpecParameter;
30 import org.onap.sdc.activityspec.be.datatypes.ElementType;
31 import org.openecomp.core.utilities.json.JsonUtil;
32 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
33 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
34 import org.openecomp.sdc.versioning.dao.types.Version;
35 import org.openecomp.types.ElementPropertyName;
36 import org.testng.Assert;
37 import org.testng.annotations.AfterMethod;
38 import org.testng.annotations.BeforeMethod;
39 import org.testng.annotations.Test;
41 import java.io.InputStream;
43 import java.util.stream.Collectors;
45 import static org.openecomp.core.zusammen.api.ZusammenUtil.createSessionContext;
47 public class ActivitySpecZusammenDaoImplTest {
49 private static final Version version = new Version();
50 private static final String versionId = "1234";
51 private static final String itemId = "5678";
52 private static final String tenant = "dox";
54 private ZusammenAdaptorMock zusammenAdaptor;
55 private ActivitySpecDaoZusammenImpl daoImpl;
56 private ActivitySpecEntity entity;
61 SessionContextProviderFactory.getInstance().createInterface().create("test", tenant);
62 zusammenAdaptor = new ZusammenAdaptorMock();
63 daoImpl = new ActivitySpecDaoZusammenImpl(zusammenAdaptor);
64 entity = new ActivitySpecEntity();
65 entity = new ActivitySpecEntity();
68 version.setId(versionId);
69 entity.setVersion(version);
70 entity.setName("activitySpec");
71 List<String> categoryList = new ArrayList<>();
72 categoryList.add("category1");
73 entity.setCategoryList(categoryList);
74 ActivitySpecParameter inputParams = new ActivitySpecParameter("dbhost", "String");
75 inputParams.setValue("localhost");
76 List<ActivitySpecParameter> inputs = new ArrayList<>();
77 inputs.add(inputParams);
78 entity.setInputs(inputs);
82 public void tearDown() {
83 SessionContextProviderFactory.getInstance().createInterface().close();
87 public void testCreate() {
88 ItemVersion itemVersionmock = new ItemVersion();
89 itemVersionmock.setId(new Id());
91 daoImpl.create(entity);
92 SessionContext context = createSessionContext();
93 ElementContext elementContext = new ElementContext(entity.getId(), entity.getVersion().getId());
94 Optional<ElementInfo> testElementInfo =
95 zusammenAdaptor.getElementInfoByName(context, elementContext, Id.ZERO, ElementType.ACTIVITYSPEC.name());
96 Assert.assertTrue(testElementInfo.isPresent());
97 Assert.assertEquals(testElementInfo.get().getInfo().getName(), ElementType.ACTIVITYSPEC.name());
98 Assert.assertEquals(testElementInfo.get().getInfo().getProperty(
99 ActivitySpecDaoZusammenImpl.InfoPropertyName.DESCRIPTION.getValue()), entity.getDescription());
100 Assert.assertEquals(testElementInfo.get().getInfo().getProperty(InfoPropertyName.CATEGORY.getValue()),
101 entity.getCategoryList());
102 Assert.assertEquals(testElementInfo.get().getInfo()
103 .getProperty(ActivitySpecDaoZusammenImpl.InfoPropertyName.NAME.getValue()),
106 final Optional<Element> testElement =
107 zusammenAdaptor.getElement(context, elementContext, zusammenAdaptor.elementId);
108 final InputStream data = testElement.get().getData();
109 final ActivitySpecData activitySpecData = JsonUtil.json2Object(data, ActivitySpecData.class);
110 Assert.assertEquals(activitySpecData.getInputs().get(0).getName(), entity.getInputs().get(0).getName());
114 public void testGet() {
115 final ActivitySpecEntity retrieved = daoImpl.get(entity);
116 Assert.assertEquals(retrieved.getName(), entity.getName());
117 Assert.assertEquals(retrieved.getDescription(), entity.getDescription());
118 Assert.assertEquals(retrieved.getCategoryList(), entity.getCategoryList());
122 public void testUpdate() {
123 entity.setDescription("Update AS version1");
124 daoImpl.update(entity);
125 final ActivitySpecEntity retrieved = daoImpl.get(entity);
126 Assert.assertEquals(retrieved.getName(), entity.getName());
127 Assert.assertEquals(retrieved.getDescription(), entity.getDescription());
128 Assert.assertEquals(retrieved.getCategoryList(), entity.getCategoryList());
131 private class ZusammenAdaptorMock implements ZusammenAdaptor {
133 private ItemVersion itemVersion;
134 private final Map<String, Element> elementMap = new HashMap<>();
138 public Optional<ItemVersion> getFirstVersion(SessionContext context, Id itemId) {
140 return Optional.ofNullable(itemVersion);
144 public Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId) {
149 public ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId) {
154 public Optional<Element> getElement(SessionContext context, ElementContext elementContext, String elementId) {
155 return Optional.of(elementMap.get(elementId));
159 public Optional<Element> getElementByName(SessionContext context, ElementContext elementContext,
160 Id parentElementId, String elementName) {
161 //return Optional.empty();
162 ZusammenElement element = new ZusammenElement();
163 Info info = new Info();
164 element.setElementId(Id.ZERO);
165 info.addProperty("name", entity.getName());
166 info.addProperty("description", entity.getDescription());
167 info.addProperty("category", entity.getCategoryList());
168 element.setInfo(info);
169 return Optional.ofNullable(element);
173 public Collection<ElementInfo> listElements(SessionContext context, ElementContext elementContext,
174 Id parentElementId) {
179 public Collection<Element> listElementData(SessionContext context, ElementContext elementContext,
180 Id parentElementId) {
181 return elementMap.values();
185 public Collection<ElementInfo> listElementsByName(SessionContext context, ElementContext elementContext,
186 Id parentElementId, String elementName) {
188 return elementMap.values().stream()
189 .filter(element -> elementName.equals(element.getInfo()
191 ElementPropertyName.elementType
194 ElementInfo elementInfo = new ElementInfo();
195 elementInfo.setId(element.getElementId());
196 elementInfo.setInfo(element.getInfo());
198 }).collect(Collectors.toList());
203 public Optional<ElementInfo> getElementInfoByName(SessionContext context, ElementContext elementContext,
204 Id parentElementId, String elementName) {
207 return elementMap.values().stream()
208 .filter(element -> elementName.equals(element.getInfo()
210 ElementPropertyName.elementType
213 ElementInfo elementInfo = new ElementInfo();
214 elementInfo.setId(element.getElementId());
215 elementInfo.setInfo(element.getInfo());
223 public Element saveElement(SessionContext context, ElementContext elementContext, ZusammenElement element,
225 if (element.getAction().equals(Action.CREATE) || element.getAction().equals(Action.UPDATE)) {
226 element.setElementId(new Id(UUID.randomUUID().toString()));
228 elementMap.put(element.getElementId().getValue(), element);
229 elementId = element.getElementId().getValue();
234 public void resolveElementConflict(SessionContext context, ElementContext elementContext,
235 ZusammenElement element, Resolution resolution) {
240 public Collection<HealthInfo> checkHealth(SessionContext context) {
245 public Id createItem(SessionContext context, Info info) {
250 public void updateItem(SessionContext context, Id itemId, Info info) {
255 public Id createVersion(SessionContext context, Id itemId, Id baseVersionId, ItemVersionData itemVersionData) {
260 public void updateVersion(SessionContext context, Id itemId, Id versionId, ItemVersionData itemVersionData) {
265 public ItemVersion getVersion(SessionContext context, Id itemId, Id versionId) {
270 public String getVersion(SessionContext sessionContext) {
275 public ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId) {
280 public ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId) {
285 public void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag) {
290 public void resetVersionHistory(SessionContext context, Id itemId, Id versionId, String changeRef) {
296 public void publishVersion(SessionContext context, Id itemId, Id versionId, String message) {
301 public void syncVersion(SessionContext sessionContext, Id itemId, Id versionId) {
306 public void forceSyncVersion(SessionContext context, Id itemId, Id versionId) {
311 public void cleanVersion(SessionContext sessionContext, Id itemId, Id versionId) {
316 public Optional<ElementInfo> getElementInfo(SessionContext context, ElementContext elementContext,
318 return Optional.empty();
322 public void revert(SessionContext sessionContext, Id itemId, Id versionId, Id revisionId) {
327 public ItemVersionRevisions listRevisions(SessionContext sessionContext, Id itemId, Id versionId) {
332 public Optional<ElementConflict> getElementConflict(SessionContext context, ElementContext elementContext,
334 return Optional.empty();
338 public Collection<Item> listItems(SessionContext context) {
343 public Item getItem(SessionContext context, Id itemId) {
348 public void deleteItem(SessionContext context, Id itemId) {