package com.constellio.app.modules.rm.model.calculators.decommissioningList; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.app.modules.rm.model.enums.CopyType; import com.constellio.model.entities.calculators.CalculatorParameters; import com.constellio.model.entities.calculators.CalculatorParametersValidatingDependencies; import com.constellio.sdk.tests.ConstellioTest; public class DecomListUniformCopyTypeCalculatorTest extends ConstellioTest { CopyType principalCopyType, secndaryCopyType, copyType; List<CopyType> equalsValues; List<CopyType> differentsValues; List<CopyType> emptyList; List<CopyType> copyTypes; DecomListUniformCopyTypeCalculator calculator; @Mock CalculatorParameters parameters; @Before public void setUp() throws Exception { calculator = spy(new DecomListUniformCopyTypeCalculator()); principalCopyType = CopyType.PRINCIPAL; secndaryCopyType = CopyType.SECONDARY; equalsValues = Arrays.asList(principalCopyType, principalCopyType, principalCopyType); differentsValues = Arrays.asList(principalCopyType, principalCopyType, secndaryCopyType); emptyList = new ArrayList<>(); } @Test public void givenDifferentsValuesInListParamsWhenCalculateThenReturnNull() throws Exception { copyTypes = differentsValues; copyType = calculatedValue(); assertThat(copyType).isNull(); } @Test public void givenEqualsValuesInListParamsWhenCalculateThenReturnNull() throws Exception { copyTypes = equalsValues; copyType = calculatedValue(); assertThat(copyType).isEqualTo(principalCopyType); } @Test public void givenEmptyListParamsWhenCalculateThenReturnNull() throws Exception { copyTypes = emptyList; copyType = calculatedValue(); assertThat(copyType).isNull(); } // -------------------- private CopyType calculatedValue() { when(parameters.get(calculator.foldersCopyTypesParam)).thenReturn(copyTypes); return calculator.calculate(new CalculatorParametersValidatingDependencies(parameters, calculator)); } }