package com.constellio.app.modules.es.ui.pages;
import static com.constellio.app.ui.i18n.i18n.$;
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.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.entities.RecordVO;
import com.constellio.app.ui.entities.RecordVO.VIEW_MODE;
import com.constellio.app.ui.framework.builders.RecordToVOBuilder;
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.model.services.users.UserServices;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.FakeSessionContext;
import com.constellio.sdk.tests.SDKViewNavigation;
import com.constellio.sdk.tests.setups.Users;
public class EditConnectorInstancePresenterAcceptTest extends ConstellioTest {
@Mock EditConnectorInstanceView view;
@Mock RecordVO recordVO;
Users users = new Users();
ConnectorManager connectorManager;
RecordServices recordServices;
UserServices userServices;
ESSchemasRecordsServices es;
ConnectorType connectorType;
ConnectorInstance connectorInstance;
EditConnectorInstancePresenter presenter;
@Before
public void setUp()
throws Exception {
prepareSystem(withZeCollection().withConstellioESModule().withAllTestUsers());
ConstellioFactories constellioFactories = getConstellioFactories();
SessionContext sessionContext;
when(view.getSessionContext()).thenReturn(FakeSessionContext.adminInCollection(zeCollection));
when(view.getCollection()).thenReturn(zeCollection);
when(view.getConstellioFactories()).thenReturn(constellioFactories);
new SDKViewNavigation(view);
es = new ESSchemasRecordsServices(zeCollection, getAppLayerFactory());
recordServices = getModelLayerFactory().newRecordServices();
userServices = getModelLayerFactory().newUserServices();
users.setUp(userServices);
connectorManager = es.getConnectorManager();
configureConnectorsInstances();
presenter = new EditConnectorInstancePresenter(view);
}
private void configureConnectorsInstances() {
connectorInstance = connectorManager
.createConnector(es.newConnectorHttpInstance()
.setCode("zeConnector")
.setTitle("Ze Connector")
.setTraversalCode("traversalCode")
.setEnabled(true)
.setSeeds("http://constellio.com"));
}
@Test
public void givenConnectorInstanceWhenEditThenOk()
throws Exception {
presenter.forParams(connectorInstance.getId());
RecordVO recordVO = new RecordToVOBuilder()
.build(connectorInstance.getWrappedRecord(), VIEW_MODE.FORM, view.getSessionContext());
recordVO.set(Schemas.TITLE_CODE, "new Title");
presenter.saveButtonClicked(recordVO);
assertThat(recordServices.getDocumentById(connectorInstance.getId()).get(Schemas.TITLE)).isEqualTo("new Title");
}
@Test
public void whenGetConnectorInstaceTitleThenOk()
throws Exception {
assertThat(presenter.getTitle()).isEqualTo($("EditConnectorInstanceView.viewTitle"));
}
}