/**
* Copyright (C) 2015 Orange
* 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.
*/
package com.francetelecom.clara.cloud.paas.activation.v1;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import java.io.File;
import java.io.IOException;
import javax.xml.bind.JAXBException;
import org.fest.assertions.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;
import com.francetelecom.clara.cloud.model.TechnicalDeployment;
import com.francetelecom.clara.cloud.model.TechnicalDeploymentInstance;
import com.francetelecom.clara.cloud.paas.activation.ActivationStepEnum;
@RunWith(MockitoJUnitRunner.class)
public class ActivitiProcessFactoryTest {
@Spy
@InjectMocks
ActivitiProcessFactory activitiProcessFactory;
@Test
public void must_generate_process_from_tdi() throws JAXBException, IOException {
// GIVEN
ActivationStepEnum activationStep = ActivationStepEnum.ACTIVATE;
TechnicalDeploymentInstance tdi = mock(TechnicalDeploymentInstance.class);
org.activiti.bpmn.model.Process tprocess = mock(org.activiti.bpmn.model.Process.class);
reset(activitiProcessFactory);
doReturn(tprocess).when(activitiProcessFactory).createActivateProcess(tdi);
doNothing().when(activitiProcessFactory).addBoundaryErrorEvent(tdi, tprocess, activationStep);
// WHEN
activitiProcessFactory.generateProcessFromTDI(activationStep, tdi);
// THEN
verify(activitiProcessFactory).createActivateProcess(tdi);
verify(activitiProcessFactory).addBoundaryErrorEvent(tdi, tprocess, activationStep);
verify(activitiProcessFactory).generateProcessFromTDI(activationStep, tdi);
verifyNoMoreInteractions(activitiProcessFactory);
}
@Test
public void generated_process_should_be_set_as_executable_by_default() throws JAXBException, IOException {
// GIVEN
TechnicalDeploymentInstance tdi = mock(TechnicalDeploymentInstance.class);
doReturn(new TechnicalDeployment("name")).when(tdi).getTechnicalDeployment();
reset(activitiProcessFactory);
// WHEN
org.activiti.bpmn.model.Process process = activitiProcessFactory.createActivateProcess(tdi);
// THEN
Assertions.assertThat(process.isExecutable()).isTrue();
}
}