package com.constellio.app.ui.pages.management.collections; import com.constellio.app.modules.es.ConstellioESModule; import com.constellio.app.modules.rm.ConstellioRMModule; import com.constellio.app.modules.robots.ConstellioRobotsModule; import com.constellio.app.modules.tasks.TaskModule; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.framework.data.CollectionVODataProvider; import com.constellio.model.entities.records.Record; import com.constellio.model.services.extensions.ConstellioModulesManager; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.FakeSessionContext; import com.constellio.sdk.tests.MockedNavigation; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import java.util.HashSet; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.when; public class AddEditCollectionPresenterWithRMModuleAcceptanceTest extends ConstellioTest { @Mock AddEditCollectionView view; MockedNavigation navigator; AddEditCollectionPresenter presenter; Record zeCollectionRecord; private ConstellioModulesManager moduleManager; @Mock CollectionVODataProvider.CollectionVO collectionVO; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withConstellioRMModule().withAllTestUsers() ); navigator = new MockedNavigation(); ConstellioFactories constellioFactories = getConstellioFactories(); when(view.getConstellioFactories()).thenReturn(constellioFactories); when(view.getSessionContext()).thenReturn(FakeSessionContext.adminInCollection(zeCollection)); when(view.navigate()).thenReturn(navigator); presenter = new AddEditCollectionPresenter(view, null); moduleManager = getAppLayerFactory().getModulesManager(); zeCollectionRecord = getAppLayerFactory().getCollectionsManager().getCollection(zeCollection).getWrappedRecord(); doReturn(null).when(collectionVO).getConservationCalendarNumber(); doReturn(null).when(collectionVO).getOrganizationNumber(); } @Test public void whenActivatingESThenOk() throws Exception { presenter.updateCollectionModules(collectionVO, zeCollectionRecord, zeCollection, new HashSet<>(asList(ConstellioESModule.ID))); assertThat(moduleManager.getEnabledModules(zeCollection)).extracting("id").containsOnly(ConstellioESModule.ID, ConstellioRMModule.ID, TaskModule.ID); } @Test public void whenActivatingRobotThenOk() throws Exception { presenter.updateCollectionModules(collectionVO, zeCollectionRecord, zeCollection, new HashSet<>(asList(ConstellioRobotsModule.ID))); assertThat(moduleManager.getEnabledModules(zeCollection)).extracting("id").containsOnly(ConstellioRobotsModule.ID, ConstellioRMModule.ID, TaskModule.ID); } }