1 package org.onap.sdc.workflow.persistence.impl;
 
   3 import static org.junit.Assert.assertEquals;
 
   4 import static org.mockito.Mockito.verify;
 
   5 import static org.mockito.Matchers.any;
 
   6 import static org.mockito.Matchers.eq;
 
   7 import static org.mockito.Mockito.doReturn;
 
   8 import static org.mockito.Mockito.times;
 
  10 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
 
  11 import com.amdocs.zusammen.datatypes.Id;
 
  12 import com.amdocs.zusammen.datatypes.SessionContext;
 
  13 import com.amdocs.zusammen.datatypes.item.ElementContext;
 
  14 import com.amdocs.zusammen.datatypes.item.Info;
 
  15 import java.util.Optional;
 
  16 import org.junit.Before;
 
  17 import org.junit.Test;
 
  18 import org.junit.runner.RunWith;
 
  19 import org.mockito.InjectMocks;
 
  20 import org.mockito.Mock;
 
  21 import org.mockito.Spy;
 
  22 import org.mockito.junit.MockitoJUnitRunner;
 
  23 import org.onap.sdc.workflow.persistence.types.ParameterEntity;
 
  24 import org.onap.sdc.workflow.persistence.types.ParameterPropertyName;
 
  25 import org.onap.sdc.workflow.persistence.types.ParameterRole;
 
  26 import org.onap.sdc.workflow.persistence.types.ParameterType;
 
  27 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
 
  28 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
 
  30 @RunWith(MockitoJUnitRunner.class)
 
  31 public class ParameterRepositoryTest {
 
  33     private static final String ITEM1_ID = "item_id_1";
 
  34     private static final String VERSION1_ID = "version_id_1";
 
  35     private static final String PARAMETER1_ID = "parameter_id_1";
 
  38     private ZusammenAdaptor zusammenAdaptorMock;
 
  41     private ParameterRepositoryImpl parameterRepository;
 
  45         SessionContextProviderFactory.getInstance().createInterface().create("test_user", "workflow");
 
  49     public void shouldGetParameterById() {
 
  51         ZusammenElement element = new ZusammenElement();
 
  52         element.setElementId(new Id(PARAMETER1_ID));
 
  53         Info info = new Info();
 
  54         info.setName("testInput");
 
  55         info.addProperty(ParameterPropertyName.TYPE.name(),ParameterType.FLOAT.name());
 
  56         info.addProperty(ParameterPropertyName.mandatory.name(),true);
 
  57         element.setInfo(info);
 
  58         doReturn(Optional.of(element)).when(zusammenAdaptorMock)
 
  59                                       .getElement(any(SessionContext.class), any(ElementContext.class),
 
  61         ParameterEntity result = parameterRepository.get(ITEM1_ID, VERSION1_ID, PARAMETER1_ID);
 
  62         verify(parameterRepository,times(1)).elementToParameterEntity(element);
 
  63         verify(zusammenAdaptorMock).getElement(any(SessionContext.class), any(ElementContext.class),eq(PARAMETER1_ID));
 
  64         assertEquals("testInput",result.getName());
 
  70     public void shouldUpdateParameter() {
 
  71         ParameterEntity parameterEntityToUpdate = new ParameterEntity();
 
  72         parameterEntityToUpdate.setId(PARAMETER1_ID);
 
  73         parameterEntityToUpdate.setName("Input1");
 
  74         parameterEntityToUpdate.setMandatory(true);
 
  75         parameterEntityToUpdate.setType(ParameterType.STRING);
 
  77         parameterRepository.update(ITEM1_ID, VERSION1_ID, ParameterRole.INPUT, parameterEntityToUpdate);
 
  78         verify(zusammenAdaptorMock)
 
  79                 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
 
  80                         eq("Update WorkflowVersion Parameter"));
 
  85     public void shouldCreateParameterStructure(){
 
  86         parameterRepository.createStructure(ITEM1_ID,VERSION1_ID);
 
  87         verify(zusammenAdaptorMock)
 
  88                 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
 
  89                         eq("Create WorkflowVersion INPUTS Element"));
 
  90         verify(zusammenAdaptorMock)
 
  91                 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
 
  92                         eq("Create WorkflowVersion OUTPUTS Element"));
 
  96     public void shouldDeleteParameter() {
 
  97         parameterRepository.delete(ITEM1_ID, VERSION1_ID, PARAMETER1_ID);
 
  98         verify(zusammenAdaptorMock)
 
  99                 .saveElement(any(SessionContext.class), any(ElementContext.class), any(ZusammenElement.class),
 
 100                         eq("Delete Parameter with id parameter_id_1"));