package com.constellio.app.modules.es.services.mapping.connectors;
import static java.util.Arrays.asList;
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.smb.ConnectorSmbDocument;
import com.constellio.app.modules.es.model.connectors.smb.ConnectorSmbFolder;
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 ConnectorSmbMappingServiceAcceptanceTest extends ConstellioTest {
ConnectorInstance<?> smbConnectorInstance;
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();
smbConnectorInstance = connectorManager.createConnector(es.newConnectorSmbInstance()
.setCode("smb").setTitle("Smb connector").setEnabled(false)
.setDomain("domain").setSeeds(asList("seeds")).setUsername("username").setPassword("password"));
smbConnectorInstance = es.wrapConnectorInstance(smbConnectorInstance.getWrappedRecord());
}
@Test
public void whenGetConnectorSchemaTypesThenReturnAllTypes()
throws Exception {
assertThat(service.getDocumentTypes(smbConnectorInstance)).containsOnly(
ConnectorSmbDocument.SCHEMA_TYPE,
ConnectorSmbFolder.SCHEMA_TYPE);
}
@Test
public void givenAConnectorHasFetchedNothingThenReturnDefaultDeclaredFields()
throws Exception {
assertThatConnectorFields(smbConnectorInstance, ConnectorSmbFolder.SCHEMA_TYPE).isEmpty();
assertThatConnectorFields(smbConnectorInstance, ConnectorSmbDocument.SCHEMA_TYPE).isEmpty();
}
private ListAssert<ConnectorField> assertThatConnectorFields(ConnectorInstance<?> connectorInstance,
String connectorDocumentSchemaType) {
return assertThat(service.getConnectorFields(connectorInstance, connectorDocumentSchemaType))
.usingFieldByFieldElementComparator();
}
}