package com.constellio.app.modules.es.services.mapping.connectors; import static com.constellio.model.entities.schemas.MetadataValueType.DATE_TIME; import static com.constellio.model.entities.schemas.MetadataValueType.STRING; import static org.assertj.core.api.Assertions.assertThat; import org.assertj.core.api.ListAssert; import org.junit.Before; import org.junit.Test; import com.constellio.app.modules.es.model.connectors.ConnectorInstance; import com.constellio.app.modules.es.model.connectors.http.ConnectorHttpDocument; import com.constellio.app.modules.es.services.ConnectorManager; import com.constellio.app.modules.es.services.ESSchemasRecordsServices; import com.constellio.app.modules.es.services.mapping.ConnectorField; import com.constellio.app.modules.es.services.mapping.ConnectorMappingService; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.setups.Users; public class ConnectorHttpMappingServiceAcceptanceTest extends ConstellioTest { ConnectorInstance<?> httpConnectorInstance; Users users = new Users(); ConnectorManager connectorManager; ESSchemasRecordsServices es; ConnectorMappingService service; @Before public void setUp() throws Exception { prepareSystem(withZeCollection().withConstellioESModule().withAllTest(users)); es = new ESSchemasRecordsServices(zeCollection, getAppLayerFactory()); service = new ConnectorMappingService(es); connectorManager = es.getConnectorManager(); httpConnectorInstance = connectorManager.createConnector(es.newConnectorHttpInstance() .setCode("http").setTitle("Http connector").setEnabled(false) .setSeeds("seeds").setIncludePatterns("username")); httpConnectorInstance = es.wrapConnectorInstance(httpConnectorInstance.getWrappedRecord()); } @Test public void whenGetConnectorSchemaTypesThenReturnAllTypes() throws Exception { assertThat(service.getDocumentTypes(httpConnectorInstance)).containsOnly( ConnectorHttpDocument.SCHEMA_TYPE); } @Test public void givenAConnectorHasFetchedNothingThenReturnDefaultDeclaredFields() throws Exception { assertThatConnectorFields(httpConnectorInstance, ConnectorHttpDocument.SCHEMA_TYPE).containsOnly( new ConnectorField(ConnectorHttpDocument.SCHEMA_TYPE + ":charset", "Encodage", STRING), new ConnectorField(ConnectorHttpDocument.SCHEMA_TYPE + ":language", "Langue", STRING), new ConnectorField(ConnectorHttpDocument.SCHEMA_TYPE + ":lastModification", "Dernière modification", DATE_TIME) ); } private ListAssert<ConnectorField> assertThatConnectorFields(ConnectorInstance<?> connectorInstance, String connectorDocumentSchemaType) { return assertThat(service.getConnectorFields(connectorInstance, connectorDocumentSchemaType)) .usingFieldByFieldElementComparator(); } }