package com.constellio.app.modules.es.connectors.http;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import org.joda.time.LocalDateTime;
import org.junit.Before;
import org.junit.Test;
import com.constellio.app.modules.es.connectors.spi.ConnectorLogger;
import com.constellio.app.modules.es.connectors.spi.ConsoleConnectorLogger;
import com.constellio.app.modules.es.model.connectors.http.ConnectorHttpDocument;
import com.constellio.app.modules.es.model.connectors.http.ConnectorHttpInstance;
import com.constellio.app.modules.es.services.ConnectorManager;
import com.constellio.app.modules.es.services.ESSchemasRecordsServices;
import com.constellio.model.services.records.RecordServices;
import com.constellio.sdk.tests.ConstellioTest;
public class ConnectorHttpDocumentAcceptTest extends ConstellioTest {
private LocalDateTime SHISH_O_CLOCK = new LocalDateTime();
ConnectorManager connectorManager;
RecordServices recordServices;
ESSchemasRecordsServices es;
ConnectorHttpInstance connectorInstance;
ConnectorLogger logger = new ConsoleConnectorLogger();
@Before
public void setUp()
throws Exception {
prepareSystem(withZeCollection().withConstellioESModule().withAllTestUsers());
es = new ESSchemasRecordsServices(zeCollection, getAppLayerFactory());
recordServices = getModelLayerFactory().newRecordServices();
connectorManager = es.getConnectorManager();
}
@Test
public void whenAddUpdatingConnectorHTTPDocumentThenAddUpdatedCorrectly()
throws Exception {
connectorInstance = connectorManager
.createConnector(es.newConnectorHttpInstance().setCode("zeConnector").setEnabled(false)
.setTitle("ze connector").setSeeds("http://perdu.com")
.setDaysBeforeRefetching(42));
ConnectorHttpDocument refDocument = es.newConnectorHttpDocument(connectorInstance);
refDocument.setTitle("ref title");
refDocument.setURL("http://www.perdu.com");
refDocument.setTraversalCode("refTraversal");
recordServices.add(refDocument);
ConnectorHttpDocument document = es.newConnectorHttpDocument(connectorInstance);
document.setTitle("ze title");
document.setURL("http://www.perdu.com");
document.setTraversalCode("zeTraversal");
document.setLevel(2);
document.setPriority(0.6);
document.setOnDemand(true);
document.setCopyOf(refDocument.getId());
document.setOutlinks(asList("http://www.constellio/1", "http://www.constellio/2", "http://www.constellio/3"));
document.setInlinks(asList("http://www.constellio/doc42", "http://www.constellio/doc666"));
document.setCharset("UTF-8");
document.setDigest("MD5");
document.setContentType("TXT");
document.setNeverFetch(true);
document.setFetchedDateTime(SHISH_O_CLOCK);
recordServices.add(document);
document = es.getConnectorHttpDocument(document.getId());
assertThat(document.getTitle()).isEqualTo("ze title");
assertThat(document.getURL()).isEqualTo("http://www.perdu.com");
assertThat(document.getTraversalCode()).isEqualTo("zeTraversal");
assertThat(document.getLevel()).isEqualTo(2);
assertThat(document.getFetchDelay()).isEqualTo(42);
assertThat(document.getPriority()).isEqualTo(0.6);
assertThat(document.getOnDemand()).isTrue();
assertThat(document.getCopyOf()).isEqualTo(refDocument.getId());
assertThat(document.getInlinks()).isEqualTo(asList("http://www.constellio/doc42", "http://www.constellio/doc666"));
assertThat(document.getOutlinks())
.isEqualTo(asList("http://www.constellio/1", "http://www.constellio/2", "http://www.constellio/3"));
assertThat(document.getCharset()).isEqualTo("UTF-8");
assertThat(document.getDigest()).isEqualTo("MD5");
assertThat(document.getContentType()).isEqualTo("TXT");
assertThat(document.getNeverFetch()).isTrue();
assertThat(document.getFetchedDateTime()).isEqualTo(SHISH_O_CLOCK);
assertThat(document.getNextFetch()).isEqualTo(SHISH_O_CLOCK.plusDays(42));
}
}