package com.constellio.app.modules.rm.model.calculators; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.app.modules.rm.model.enums.FolderStatus; import com.constellio.model.entities.calculators.CalculatorParameters; import com.constellio.model.entities.calculators.CalculatorParametersValidatingDependencies; import com.constellio.sdk.tests.ConstellioTest; public class FolderTreeVisibilityCalculatorTest extends ConstellioTest { @Mock CalculatorParameters parameters; FolderTreeVisibilityCalculator calculator; @Before public void setUp() { calculator = new FolderTreeVisibilityCalculator(); } @Test public void givenTheStatusIsActiveThenReturnsTrue() { when(parameters.get(calculator.folderStatus)).thenReturn(FolderStatus.ACTIVE); assertThat(calculate()).isTrue(); } @Test public void givenTheStatusIsSemiActiveThenReturnsSemiActiveConfig() { when(parameters.get(calculator.folderStatus)).thenReturn(FolderStatus.SEMI_ACTIVE); when(parameters.get(calculator.displaySemiActive)).thenReturn(true); assertThat(calculate()).isTrue(); when(parameters.get(calculator.displaySemiActive)).thenReturn(false); assertThat(calculate()).isFalse(); } @Test public void givenTheStatusIsDepositedThenReturnsDepositedConfig() { when(parameters.get(calculator.folderStatus)).thenReturn(FolderStatus.INACTIVE_DEPOSITED); when(parameters.get(calculator.displayDeposited)).thenReturn(true); assertThat(calculate()).isTrue(); when(parameters.get(calculator.displayDeposited)).thenReturn(false); assertThat(calculate()).isFalse(); } @Test public void givenTheStatusIsDestroyedThenReturnsDestroyedConfig() { when(parameters.get(calculator.folderStatus)).thenReturn(FolderStatus.INACTIVE_DESTROYED); when(parameters.get(calculator.displayDestroyed)).thenReturn(true); assertThat(calculate()).isTrue(); when(parameters.get(calculator.displayDestroyed)).thenReturn(false); assertThat(calculate()).isFalse(); } private Boolean calculate() { return calculator.calculate(new CalculatorParametersValidatingDependencies(parameters, calculator)); } }