package com.constellio.app.modules.rm.model.calculators.decommissioningList;
import static java.util.Arrays.asList;
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.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import com.constellio.model.entities.calculators.CalculatorParameters;
import com.constellio.model.entities.calculators.CalculatorParametersValidatingDependencies;
import com.constellio.sdk.tests.ConstellioTest;
public class FolderMediumTypesCalculatorTest extends ConstellioTest {
List<String> PA_DM_MV_PA = asList("PA", "DM", "MV", "PA");
List<String> PA_DM_MV = asList("PA", "DM", "MV");
FoldersMediumTypesCalculator calculator;
@Mock CalculatorParameters parameters;
List<String> mediumTypes;
@Before
public void setUp()
throws Exception {
calculator = spy(new FoldersMediumTypesCalculator());
}
@Test
public void givenListWithRepeatedValuesWhenCalculateThenReturnListWithoutRepeatedValues()
throws Exception {
mediumTypes = PA_DM_MV_PA;
List<String> newMediumTypesList = calculatedValue();
assertThat(newMediumTypesList).hasSize(3);
assertThat(newMediumTypesList).containsOnly("PA", "DM", "MV");
}
@Test
public void givenListWithoutRepeatedValuesWhenCalculateThenReturnTheList()
throws Exception {
mediumTypes = PA_DM_MV;
List<String> newMediumTypesList = calculatedValue();
assertThat(newMediumTypesList).hasSize(3);
assertThat(newMediumTypesList).containsOnly("PA", "DM", "MV");
}
@Test
public void givenEmptyListWhenCalculateThenReturnEmptyList()
throws Exception {
mediumTypes = new ArrayList<>();
List<String> newMediumTypesList = calculatedValue();
assertThat(newMediumTypesList).isEmpty();
}
// --------------------
private List<String> calculatedValue() {
when(parameters.get(calculator.mediumTypesParam)).thenReturn(mediumTypes);
return calculator.calculate(new CalculatorParametersValidatingDependencies(parameters, calculator));
}
}