Search in sources :

Example 6 with RestAssert

use of net.codestory.rest.RestAssert in project datashare by ICIJ.

the class TaskResourceTest method test_index_queue_with_options.

@Test
public void test_index_queue_with_options() {
    RestAssert response = post("/api/task/batchUpdate/index", "{\"options\":{\"key1\":\"val1\",\"key2\":\"val2\"}}");
    response.should().haveType("application/json");
    verify(taskFactory).createIndexTask(local(), "extract:queue", new PropertiesProvider(new HashMap<String, String>() {

        {
            put("key1", "val1");
            put("key2", "val2");
        }
    }).getProperties());
    verify(taskFactory, never()).createScanTask(eq(local()), eq("extract:queue"), any(Path.class), any(Properties.class));
}
Also used : PropertiesProvider(org.icij.datashare.PropertiesProvider) Path(java.nio.file.Path) Properties(java.util.Properties) RestAssert(net.codestory.rest.RestAssert) AbstractProdWebServerTest(org.icij.datashare.web.testhelpers.AbstractProdWebServerTest)

Example 7 with RestAssert

use of net.codestory.rest.RestAssert in project datashare by ICIJ.

the class TaskResourceTest method test_scan_with_options.

@Test
public void test_scan_with_options() {
    String path = getClass().getResource("/docs/").getPath();
    RestAssert response = post("/api/task/batchUpdate/scan/" + path.substring(1), "{\"options\":{\"key\":\"val\",\"foo\":\"qux\"}}");
    ShouldChain responseBody = response.should().haveType("application/json");
    List<String> taskNames = taskManager.waitTasksToBeDone(1, SECONDS).stream().map(t -> t.name).collect(toList());
    assertThat(taskNames.size()).isEqualTo(1);
    responseBody.should().contain(format("{\"name\":\"%s\"", taskNames.get(0)));
    HashMap<String, String> defaultProperties = getDefaultProperties();
    defaultProperties.put("key", "val");
    defaultProperties.put("foo", "qux");
    verify(taskFactory).createScanTask(local(), "extract:queue", Paths.get(path), new PropertiesProvider(defaultProperties).getProperties());
    verify(taskFactory, never()).createIndexTask(any(User.class), anyString(), any(Properties.class));
}
Also used : Routes(net.codestory.http.routes.Routes) AbstractProdWebServerTest(org.icij.datashare.web.testhelpers.AbstractProdWebServerTest) CommonMode(org.icij.datashare.mode.CommonMode) NlpApp(org.icij.datashare.nlp.NlpApp) HashMap(java.util.HashMap) AbstractModels(org.icij.datashare.text.nlp.AbstractModels) RestAssert(net.codestory.rest.RestAssert) ArgumentCaptor(org.mockito.ArgumentCaptor) Collections.singleton(java.util.Collections.singleton) Assertions.assertThat(org.fest.assertions.Assertions.assertThat) EmailPipeline(org.icij.datashare.nlp.EmailPipeline) Matchers.eq(org.mockito.Matchers.eq) Filter(net.codestory.http.filters.Filter) User(org.icij.datashare.user.User) Project.project(org.icij.datashare.text.Project.project) BatchDownload(org.icij.datashare.batch.BatchDownload) DatashareTimeRule(org.icij.datashare.test.DatashareTimeRule) Path(java.nio.file.Path) Pipeline(org.icij.datashare.text.nlp.Pipeline) org.icij.datashare.tasks(org.icij.datashare.tasks) Properties(java.util.Properties) PropertiesProvider(org.icij.datashare.PropertiesProvider) Indexer(org.icij.datashare.text.indexing.Indexer) String.format(java.lang.String.format) PipelineRegistry(org.icij.datashare.extension.PipelineRegistry) ShouldChain(net.codestory.rest.ShouldChain) Mockito(org.mockito.Mockito) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) Paths(java.nio.file.Paths) LocalUserFilter(org.icij.datashare.session.LocalUserFilter) DatashareUser.local(org.icij.datashare.session.DatashareUser.local) org.junit(org.junit) NotNull(org.jetbrains.annotations.NotNull) MapAssert.entry(org.fest.assertions.MapAssert.entry) SECONDS(java.util.concurrent.TimeUnit.SECONDS) PropertiesProvider(org.icij.datashare.PropertiesProvider) User(org.icij.datashare.user.User) ShouldChain(net.codestory.rest.ShouldChain) Properties(java.util.Properties) RestAssert(net.codestory.rest.RestAssert) AbstractProdWebServerTest(org.icij.datashare.web.testhelpers.AbstractProdWebServerTest)

Example 8 with RestAssert

use of net.codestory.rest.RestAssert in project datashare by ICIJ.

the class CommonModeTest method test_one_extension.

RestAssert test_one_extension(String method, String prefix) throws Throwable {
    String prefixString = prefix == null ? "\n" : "@Prefix(\"" + prefix + "\")\n";
    String source = format("package org.icij.datashare.mode;\n" + "\n" + "import net.codestory.http.annotations.%s;\n" + "import net.codestory.http.annotations.Prefix;\n" + "\n" + prefixString + "public class FooResource {\n" + "    @%s(\"url\")\n" + "    public String url() {\n" + "        return \"hello from foo extension with %s\";\n" + "    }\n" + "}", method, method, method);
    createJar(pluginFolder.getRoot().toPath(), "extension", source);
    configure(routes -> mode.addExtensionConfiguration(routes));
    Method restAssertMethod = FluentRestTest.class.getMethod(method.toLowerCase(), String.class);
    return (RestAssert) restAssertMethod.invoke(this, ofNullable(prefix).orElse("") + "/url");
}
Also used : Method(java.lang.reflect.Method) RestAssert(net.codestory.rest.RestAssert)

Example 9 with RestAssert

use of net.codestory.rest.RestAssert in project datashare by ICIJ.

the class TaskResourceTest method test_index_file_and_filter.

@Test
public void test_index_file_and_filter() {
    RestAssert response = post("/api/task/batchUpdate/index/" + getClass().getResource("/docs/doc.txt").getPath().substring(1), "{\"options\":{\"filter\": true}}");
    ShouldChain responseBody = response.should().haveType("application/json");
    List<String> taskNames = taskManager.waitTasksToBeDone(1, SECONDS).stream().map(t -> t.name).collect(toList());
    responseBody.should().contain(format("{\"name\":\"%s\"", taskNames.get(0)));
    responseBody.should().contain(format("{\"name\":\"%s\"", taskNames.get(1)));
    verify(taskFactory).createScanIndexTask(eq(local()), eq("extract:report"));
}
Also used : Routes(net.codestory.http.routes.Routes) AbstractProdWebServerTest(org.icij.datashare.web.testhelpers.AbstractProdWebServerTest) CommonMode(org.icij.datashare.mode.CommonMode) NlpApp(org.icij.datashare.nlp.NlpApp) HashMap(java.util.HashMap) AbstractModels(org.icij.datashare.text.nlp.AbstractModels) RestAssert(net.codestory.rest.RestAssert) ArgumentCaptor(org.mockito.ArgumentCaptor) Collections.singleton(java.util.Collections.singleton) Assertions.assertThat(org.fest.assertions.Assertions.assertThat) EmailPipeline(org.icij.datashare.nlp.EmailPipeline) Matchers.eq(org.mockito.Matchers.eq) Filter(net.codestory.http.filters.Filter) User(org.icij.datashare.user.User) Project.project(org.icij.datashare.text.Project.project) BatchDownload(org.icij.datashare.batch.BatchDownload) DatashareTimeRule(org.icij.datashare.test.DatashareTimeRule) Path(java.nio.file.Path) Pipeline(org.icij.datashare.text.nlp.Pipeline) org.icij.datashare.tasks(org.icij.datashare.tasks) Properties(java.util.Properties) PropertiesProvider(org.icij.datashare.PropertiesProvider) Indexer(org.icij.datashare.text.indexing.Indexer) String.format(java.lang.String.format) PipelineRegistry(org.icij.datashare.extension.PipelineRegistry) ShouldChain(net.codestory.rest.ShouldChain) Mockito(org.mockito.Mockito) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) Paths(java.nio.file.Paths) LocalUserFilter(org.icij.datashare.session.LocalUserFilter) DatashareUser.local(org.icij.datashare.session.DatashareUser.local) org.junit(org.junit) NotNull(org.jetbrains.annotations.NotNull) MapAssert.entry(org.fest.assertions.MapAssert.entry) SECONDS(java.util.concurrent.TimeUnit.SECONDS) ShouldChain(net.codestory.rest.ShouldChain) RestAssert(net.codestory.rest.RestAssert) AbstractProdWebServerTest(org.icij.datashare.web.testhelpers.AbstractProdWebServerTest)

Example 10 with RestAssert

use of net.codestory.rest.RestAssert in project datashare by ICIJ.

the class TaskResourceTest method test_index_and_scan_directory_with_options.

@Test
public void test_index_and_scan_directory_with_options() {
    String path = getClass().getResource("/docs/").getPath();
    RestAssert response = post("/api/task/batchUpdate/index/" + path.substring(1), "{\"options\":{\"foo\":\"baz\",\"key\":\"val\"}}");
    response.should().haveType("application/json");
    HashMap<String, String> defaultProperties = getDefaultProperties();
    defaultProperties.put("foo", "baz");
    defaultProperties.put("key", "val");
    verify(taskFactory).createIndexTask(local(), "extract:queue", new PropertiesProvider(defaultProperties).getProperties());
    verify(taskFactory).createScanTask(local(), "extract:queue", Paths.get(path), new PropertiesProvider(defaultProperties).getProperties());
}
Also used : PropertiesProvider(org.icij.datashare.PropertiesProvider) RestAssert(net.codestory.rest.RestAssert) AbstractProdWebServerTest(org.icij.datashare.web.testhelpers.AbstractProdWebServerTest)

Aggregations

RestAssert (net.codestory.rest.RestAssert)13 AbstractProdWebServerTest (org.icij.datashare.web.testhelpers.AbstractProdWebServerTest)12 PropertiesProvider (org.icij.datashare.PropertiesProvider)8 Properties (java.util.Properties)7 Path (java.nio.file.Path)6 EmailPipeline (org.icij.datashare.nlp.EmailPipeline)6 Pipeline (org.icij.datashare.text.nlp.Pipeline)6 String.format (java.lang.String.format)5 Paths (java.nio.file.Paths)5 Collections.singleton (java.util.Collections.singleton)5 HashMap (java.util.HashMap)5 List (java.util.List)5 SECONDS (java.util.concurrent.TimeUnit.SECONDS)5 Collectors.toList (java.util.stream.Collectors.toList)5 Filter (net.codestory.http.filters.Filter)5 Routes (net.codestory.http.routes.Routes)5 ShouldChain (net.codestory.rest.ShouldChain)5 Assertions.assertThat (org.fest.assertions.Assertions.assertThat)5 MapAssert.entry (org.fest.assertions.MapAssert.entry)5 BatchDownload (org.icij.datashare.batch.BatchDownload)5