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 org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.app.modules.rm.model.CopyRetentionRule; import com.constellio.app.modules.rm.model.CopyRetentionRuleBuilder; 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 DecomListIsUniformTest extends ConstellioTest { CopyRetentionRule copyRetentionRule; CopyType copyType; String uniformRuleParam; String uniformCategoryParam; DecomListIsUniform calculator; @Mock CalculatorParameters parameters; boolean isUniform; CopyRetentionRuleBuilder copyBuilder = CopyRetentionRuleBuilder.UUID(); @Before public void setUp() throws Exception { calculator = spy(new DecomListIsUniform()); } @Test public void givenNonNullsParamsWhenCalculateThenReturnTrue() throws Exception { copyRetentionRule = copyBuilder.newCopyRetentionRule(); copyType = CopyType.PRINCIPAL; uniformRuleParam = "uniformRule"; uniformCategoryParam = "uniformCategory"; isUniform = calculatedValue(); assertThat(isUniform).isTrue(); } @Test public void givenOneNullParamWhenCalculateThenReturnFalse() throws Exception { copyRetentionRule = copyBuilder.newCopyRetentionRule(); copyType = CopyType.PRINCIPAL; uniformRuleParam = "uniformRule"; uniformCategoryParam = null; isUniform = calculatedValue(); assertThat(isUniform).isFalse(); } // -------------------- private Boolean calculatedValue() { when(parameters.get(calculator.uniformCopyRuleParam)).thenReturn(copyRetentionRule); when(parameters.get(calculator.uniformCopyTypeParam)).thenReturn(copyType); when(parameters.get(calculator.uniformRuleParam)).thenReturn(uniformRuleParam); when(parameters.get(calculator.uniformCategoryParam)).thenReturn(uniformCategoryParam); return calculator.calculate(new CalculatorParametersValidatingDependencies(parameters, calculator)); } }