package com.constellio.app.modules.es.ui.pages; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import com.constellio.app.modules.es.navigation.ESViews; import com.constellio.app.modules.rm.navigation.RMViews; import com.constellio.sdk.tests.MockedNavigation; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.app.modules.es.model.connectors.ConnectorInstance; import com.constellio.app.modules.es.model.connectors.ConnectorType; import com.constellio.app.modules.es.services.ConnectorManager; import com.constellio.app.modules.es.services.ESSchemasRecordsServices; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.application.CoreViews; import com.constellio.app.ui.entities.RecordVO; import com.constellio.model.services.records.RecordServices; import com.constellio.model.services.users.UserServices; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.FakeSessionContext; import com.constellio.sdk.tests.setups.Users; public class ListConnectorInstancesPresenterAcceptTest extends ConstellioTest { @Mock ListConnectorInstancesView view; MockedNavigation navigator; @Mock RecordVO recordVO; RecordServices recordServices; Users users = new Users(); UserServices userServices; ESSchemasRecordsServices es; ConnectorManager connectorManager; ConnectorType connectorType; ConnectorInstance connectorInstance, anotherConnectorInstace; ListConnectorInstancesPresenter presenter; @Before public void setUp() throws Exception { prepareSystem(withZeCollection().withConstellioESModule().withAllTestUsers()); ConstellioFactories constellioFactories = getConstellioFactories(); when(view.getSessionContext()).thenReturn(FakeSessionContext.adminInCollection(zeCollection)); when(view.getCollection()).thenReturn(zeCollection); when(view.getConstellioFactories()).thenReturn(constellioFactories); navigator = new MockedNavigation(); when(view.navigate()).thenReturn(navigator); es = new ESSchemasRecordsServices(zeCollection, getAppLayerFactory()); recordServices = getModelLayerFactory().newRecordServices(); userServices = getModelLayerFactory().newUserServices(); users.setUp(userServices); connectorManager = es.getConnectorManager(); configureConnectorsInstances(); presenter = new ListConnectorInstancesPresenter(view); } private void configureConnectorsInstances() { connectorInstance = connectorManager .createConnector(es.newConnectorHttpInstance() .setCode("zeConnector") .setTitle("Ze Connector") .setTraversalCode("traversalCode") .setEnabled(true) .setSeeds("http://constellio.com")); anotherConnectorInstace = connectorManager .createConnector(es.newConnectorHttpInstance() .setCode("anotherConnector") .setTitle("Another Connector") .setTraversalCode("anotherTraversalCode") .setEnabled(true) .setSeeds("http://constellio.com")); } @Test public void givenUserWithoutManagerConnectorPermissionWhenHasPageAccessThenReturnFalse() throws Exception { assertThat(presenter.hasPageAccess("", users.chuckNorrisIn(zeCollection))).isFalse(); } @Test public void givenUserWithManagerConnectorPermissionWhenHasPageAccessThenReturnTrue() throws Exception { assertThat(presenter.hasPageAccess("", users.adminIn(zeCollection))).isTrue(); } @Test public void whenGetDataProviderThenOk() throws Exception { assertThat(presenter.getDataProvider().size()).isEqualTo(2); } @Test public void whenDisplayButtonClickedThenNavigateToDisplay() throws Exception { when(recordVO.getId()).thenReturn("recordId"); presenter.displayButtonClicked(recordVO); verify(view.navigate().to(ESViews.class)).displayConnectorInstance("recordId"); } @Test public void whenEditButtonClickedThenNavigateToEdit() throws Exception { when(recordVO.getId()).thenReturn("recordId"); presenter.editButtonClicked(recordVO); verify(view.navigate().to(ESViews.class)).editConnectorInstance("recordId"); } }