[SDC-29] Amdocs OnBoard 1707 initial commit.
[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
index 2c8ffb1..5cfe33b 100644 (file)
@@ -1,18 +1,56 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
 package org.openecomp.sdc.vendorsoftwareproduct.dao;
 
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.UserInfo;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+import com.amdocs.zusammen.datatypes.item.Item;
+import com.amdocs.zusammen.datatypes.item.ItemVersion;
+import com.amdocs.zusammen.datatypes.item.ItemVersionData;
+import com.amdocs.zusammen.datatypes.itemversion.Tag;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+import org.openecomp.sdc.model.impl.zusammen.ServiceModelDaoZusammenImpl;
+import org.openecomp.sdc.model.impl.zusammen.StructureElement;
 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
-
 import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.core.model.dao.ServiceModelDaoFactory;
-import org.openecomp.core.model.types.ServiceArtifact;
-import org.openecomp.core.utilities.CommonMethods;
-import org.openecomp.core.utilities.file.FileContentHandler;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 
 public class ServiceModelDaoFactoryTest {
 
@@ -22,19 +60,64 @@ public class ServiceModelDaoFactoryTest {
   private static String artifact001;
 
 
-//  @Test
+  @Test
   public void storeServiceModelTest() {
 
+    ItemVersion itemVersionmock = new ItemVersion();
+    itemVersionmock.setId(new Id());
 
+    ZusammenAdaptorMock zusammenAdaptor = new ZusammenAdaptorMock();
+    ServiceModelDaoZusammenImpl serviceModelDaoZusammen = new ServiceModelDaoZusammenImpl(
+        zusammenAdaptor);
+
+    zusammenAdaptor.setItemVersion(itemVersionmock);
     ToscaServiceModel model = getToscaServiceModel();
-    ServiceModelDaoFactory.getInstance().createInterface().storeServiceModel(vspId, version, model);
+    serviceModelDaoZusammen.storeServiceModel(vspId, version, model);
+  }
+
+  private SessionContext getSessionContext() {
+    SessionContext context = new SessionContext();
+    context.setUser(new UserInfo("USER_A"));
+    context.setTenant("asdc");
+    return context;
   }
 
 
-//  @Test(dependsOnMethods = "storeServiceModelTest")
+  @Test
   public void getServiceModelTest() {
+
+    ItemVersion itemVersionmock = new ItemVersion();
+    itemVersionmock.setId(new Id());
+
+    ElementInfo elementInfo = new ElementInfo();
+    Info info = new Info();
+    info.addProperty("base","baseElement");
+    elementInfo.setInfo(info);
+
+    ElementInfo artifactElementInfo = new ElementInfo();
+    artifactElementInfo.setInfo(info);
+    ElementInfo templateElementInfo = new ElementInfo();
+    artifactElementInfo.setInfo(info);
+
+    ZusammenElement element = new ZusammenElement();
+    ServiceTemplate serviceTemplate = new ServiceTemplate();
+    YamlUtil yamlUtil = new YamlUtil();
+    element.setData(new ByteArrayInputStream(yamlUtil.objectToYaml(serviceTemplate).getBytes()));
+    info = new Info();
+    info.setName("dataFileName");
+    element.setInfo(info);
+    ZusammenAdaptorMock zusammenAdaptor = new ZusammenAdaptorMock();
+    ServiceModelDaoZusammenImpl serviceModelDaoZusammen = new ServiceModelDaoZusammenImpl(
+        zusammenAdaptor);
+
+    zusammenAdaptor.setItemVersion(itemVersionmock);
+    zusammenAdaptor.addElementInfo("null"+StructureElement.ServiceModel.name(),elementInfo);
+    zusammenAdaptor.addElementInfo("null"+StructureElement.Artifacts.name(),artifactElementInfo);
+    zusammenAdaptor.addElementInfo("null"+StructureElement.Templates.name(),templateElementInfo);
+    zusammenAdaptor.addElement(element);
+
     Object model =
-        ServiceModelDaoFactory.getInstance().createInterface().getServiceModel(vspId, version);
+        serviceModelDaoZusammen.getServiceModel(vspId, version);
     Assert.assertNotNull(model);
     Assert.assertTrue(model instanceof ToscaServiceModel);
     if (model instanceof ToscaServiceModel) {
@@ -44,16 +127,6 @@ public class ServiceModelDaoFactoryTest {
     }
   }
 
-//  @Test(dependsOnMethods = "getServiceModelTest")
-  public void getServiceModelInfoTest() {
-    Object info = ServiceModelDaoFactory.getInstance().createInterface()
-        .getServiceModelInfo(vspId, version, artifact001);
-    Assert.assertNotNull(info);
-    Assert.assertTrue(info instanceof ServiceArtifact);
-    if (info instanceof ServiceArtifact) {
-      Assert.assertEquals(((ServiceArtifact) info).getName(), artifact001);
-    }
-  }
 
   private ToscaServiceModel getToscaServiceModel() {
 
@@ -94,4 +167,119 @@ public class ServiceModelDaoFactoryTest {
     serviceTemplate.setDescription(CommonMethods.nextUuId());
     return serviceTemplate;
   }
+
+  private class ZusammenAdaptorMock  implements ZusammenAdaptor
+    {
+
+    private ItemVersion itemVersion;
+    private Map<String,ElementInfo> elementInfoMap = new HashMap();
+      private Collection<Element> elements = new ArrayList<>();
+
+      public void setItemVersion(ItemVersion itemVersion){
+      this.itemVersion = itemVersion;
+    }
+
+    public void addElementInfo(String key,ElementInfo elementInfo){
+      elementInfoMap.put(key,elementInfo);
+    }
+    public void addElement(Element element){
+     elements.add(element);
+    }
+    @Override
+    public Optional<ItemVersion> getFirstVersion(SessionContext context, Id itemId) {
+
+      return Optional.ofNullable(itemVersion);
+    }
+
+      @Override
+      public Optional<Element> getElement(SessionContext context, ElementContext elementContext,
+                                          String elementId) {
+        return null;
+      }
+
+      @Override
+      public Optional<Element> getElementByName(SessionContext context,
+                                                ElementContext elementContext,
+                                                Id parentElementId, String elementName) {
+        return null;
+      }
+
+      @Override
+      public Collection<ElementInfo> listElements(SessionContext context,
+                                                  ElementContext elementContext,
+                                                  Id parentElementId) {
+        return null;
+      }
+
+      @Override
+      public Collection<Element> listElementData(SessionContext context,
+                                                 ElementContext elementContext,
+                                                 Id parentElementId) {
+        return elements;
+      }
+
+      @Override
+      public Collection<ElementInfo> listElementsByName(SessionContext context,
+                                                        ElementContext elementContext,
+                                                        Id parentElementId, String elementName) {
+        return null;
+      }
+
+      @Override
+      public Optional<ElementInfo> getElementInfoByName(SessionContext context,
+                                                        ElementContext elementContext,
+                                                        Id parentElementId, String elementName) {
+        return Optional.ofNullable(elementInfoMap.get(parentElementId+elementName));
+      }
+
+      @Override
+      public Optional<Element> saveElement(SessionContext context, ElementContext elementContext,
+                                           ZusammenElement element, String message) {
+        return null;
+      }
+
+      @Override
+      public Id createItem(SessionContext context, Info info) {
+        return null;
+      }
+
+      @Override
+      public void updateItem(SessionContext context, Id itemId, Info info) {
+
+      }
+
+      @Override
+      public Id createVersion(SessionContext context, Id itemId, Id baseVersionId,
+                              ItemVersionData itemVersionData) {
+        return null;
+      }
+
+      @Override
+      public void updateVersion(SessionContext context, Id itemId, Id versionId,
+                                ItemVersionData itemVersionData) {
+
+      }
+
+      @Override
+      public void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag) {
+
+      }
+
+      @Override
+      public void resetVersionHistory(SessionContext context, Id itemId, Id versionId, String changeRef) {
+
+      }
+
+      @Override
+      public Optional<ElementInfo> getElementInfo(SessionContext context,
+                                                  ElementContext elementContext,
+                                                  Id elementId) {
+        return null;
+      }
+
+      @Override
+      public Collection<Item> listItems(SessionContext context) {
+        return null;
+      }
+    }
 }