package com.constellio.app.modules.rm.ui.pages.containers; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.List; import java.util.Locale; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.app.modules.rm.RMTestRecords; import com.constellio.app.modules.rm.wrappers.AdministrativeUnit; import com.constellio.app.modules.rm.wrappers.ContainerRecord; import com.constellio.app.ui.entities.RecordVO; import com.constellio.app.ui.entities.UserVO; import com.constellio.app.ui.framework.data.RecordVODataProvider; import com.constellio.app.ui.pages.base.SessionContext; import com.constellio.model.entities.schemas.Schemas; import com.constellio.model.services.records.RecordServices; import com.constellio.sdk.tests.ConstellioTest; public class ContainersInAdministrativeUnitPresenterAcceptTest extends ConstellioTest { RecordServices recordServices; RMTestRecords records = new RMTestRecords(zeCollection); @Mock ContainersInAdministrativeUnitView view; @Mock SessionContext sessionContext; @Mock UserVO currentUser; ContainersInAdministrativeUnitPresenter presenter; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withConstellioRMModule().withAllTestUsers().withRMTest(records) .withFoldersAndContainersOfEveryStatus().withEvents() ); inCollection(zeCollection).setCollectionTitleTo("Collection de test"); recordServices = getModelLayerFactory().newRecordServices(); when(view.getConstellioFactories()).thenReturn(getConstellioFactories()); when(view.getCollection()).thenReturn(zeCollection); when(view.getSessionContext()).thenReturn(sessionContext); when(sessionContext.getCurrentCollection()).thenReturn(zeCollection); when(sessionContext.getCurrentUser()).thenReturn(currentUser); when(sessionContext.getCurrentLocale()).thenReturn(Locale.FRENCH); when(currentUser.getUsername()).thenReturn(chuckNorris); when(currentUser.getId()).thenReturn(records.getChuckNorris().getId()); presenter = new ContainersInAdministrativeUnitPresenter(view); } @Test public void givenAdminUnit10InTransferNoStorageSpaceWhenGettingDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_TRANSFER_NO_STORAGE_SPACE + "/" + records.unitId_10); RecordVODataProvider childAdminUnitsProvider = presenter.getChildrenAdminUnitsDataProvider(); assertThat(childAdminUnitsProvider.getSchema().getCode()).isEqualTo(AdministrativeUnit.DEFAULT_SCHEMA); assertThat(recordIdsFrom(childAdminUnitsProvider)).containsOnly(records.unitId_11, records.unitId_12, records.unitId_10a); } @Test public void givenAdminUnit10InTransferNoStorageSpaceWhenGettingAdminUnitThenAdminUnit10Returned() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_TRANSFER_NO_STORAGE_SPACE + "/" + records.unitId_10); RecordVO adminUnit = presenter.getAdministrativeUnit(); assertThat(adminUnit.getId()).isEqualTo(records.unitId_10); assertThat(adminUnit.get(AdministrativeUnit.CODE)).isEqualTo(records.getUnit10().getCode()); assertThat(adminUnit.get(Schemas.TITLE.getLocalCode())).isEqualTo(records.getUnit10().getTitle()); assertThat(adminUnit.get(Schemas.CREATED_ON.getLocalCode())).isEqualTo(records.getUnit10().getCreatedOn()); } @Test public void givenAdminUnit10InTransferWithStorageSpaceWhenGettingDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_TRANSFER_WITH_STORAGE_SPACE + "/" + records.unitId_10); RecordVODataProvider childAdminUnitsProvider = presenter.getChildrenAdminUnitsDataProvider(); assertThat(childAdminUnitsProvider.getSchema().getCode()).isEqualTo(AdministrativeUnit.DEFAULT_SCHEMA); assertThat(recordIdsFrom(childAdminUnitsProvider)).containsOnly(records.unitId_11, records.unitId_12, records.unitId_10a); } @Test public void givenAdminUnit10InDepositNoStorageSpaceWhenGettingDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_DEPOSIT_NO_STORAGE_SPACE + "/" + records.unitId_10); RecordVODataProvider childAdminUnitsProvider = presenter.getChildrenAdminUnitsDataProvider(); assertThat(childAdminUnitsProvider.getSchema().getCode()).isEqualTo(AdministrativeUnit.DEFAULT_SCHEMA); assertThat(recordIdsFrom(childAdminUnitsProvider)).containsOnly(records.unitId_11, records.unitId_12, records.unitId_10a); } @Test public void givenAdminUnit10InDepositWithStorageSpaceWhenGettingDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_DEPOSIT_WITH_STORAGE_SPACE + "/" + records.unitId_10); RecordVODataProvider childAdminUnitsProvider = presenter.getChildrenAdminUnitsDataProvider(); assertThat(childAdminUnitsProvider.getSchema().getCode()).isEqualTo(AdministrativeUnit.DEFAULT_SCHEMA); assertThat(recordIdsFrom(childAdminUnitsProvider)).containsOnly(records.unitId_11, records.unitId_12, records.unitId_10a); } @Test public void givenAdminUnit10AInTransferNoStorageSpaceWhenGettingContainerDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_TRANSFER_NO_STORAGE_SPACE + "/" + records.unitId_10a); RecordVODataProvider containersProvider = presenter.getContainersDataProvider(); assertThat(containersProvider.getSchema().getCode()).isEqualTo(ContainerRecord.DEFAULT_SCHEMA); assertThat(recordIdsFrom(containersProvider)) .containsOnly(records.containerId_bac10, records.containerId_bac14, records.containerId_bac15); } @Test public void givenAdminUnit10InTransferWithStorageSpaceWhenGettingContainerDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_TRANSFER_WITH_STORAGE_SPACE + "/" + records.unitId_10a); RecordVODataProvider containersProvider = presenter.getContainersDataProvider(); assertThat(containersProvider.getSchema().getCode()).isEqualTo(ContainerRecord.DEFAULT_SCHEMA); assertThat(recordIdsFrom(containersProvider)) .containsOnly(records.containerId_bac11, records.containerId_bac12, records.containerId_bac13); } @Test public void givenAdminUnit10InDepositNoStorageSpaceWhenGettingContainerDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_DEPOSIT_NO_STORAGE_SPACE + "/" + records.unitId_10a); RecordVODataProvider containersProvider = presenter.getContainersDataProvider(); assertThat(containersProvider.getSchema().getCode()).isEqualTo(ContainerRecord.DEFAULT_SCHEMA); assertThat(recordIdsFrom(containersProvider)) .containsOnly(records.containerId_bac16, records.containerId_bac17); } @Test public void givenAdminUnit10InDepositWithStorageSpaceWhenGettingContainerDataProvidersThenContainsRightData() throws Exception { presenter.forParams(ContainersByAdministrativeUnitsPresenter.TAB_DEPOSIT_WITH_STORAGE_SPACE + "/" + records.unitId_10a); RecordVODataProvider containersProvider = presenter.getContainersDataProvider(); assertThat(containersProvider.getSchema().getCode()).isEqualTo(ContainerRecord.DEFAULT_SCHEMA); assertThat(recordIdsFrom(containersProvider)) .containsOnly(records.containerId_bac04, records.containerId_bac05); } private List<String> recordIdsFrom(RecordVODataProvider dataProvider) { List<String> IDs = new ArrayList<>(); for (RecordVO recordVO : dataProvider.listRecordVOs(0, dataProvider.size())) { IDs.add(recordVO.getId()); } return IDs; } }