summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin/src/test/java/com/yahoo/document
diff options
context:
space:
mode:
Diffstat (limited to 'vespaclient-container-plugin/src/test/java/com/yahoo/document')
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java37
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/MockedOperationHandler.java4
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/RestApiTest.java36
3 files changed, 72 insertions, 5 deletions
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java
index 5735e84f3fe..2615f5e3f81 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java
@@ -6,6 +6,7 @@ import com.yahoo.documentapi.ProgressToken;
import com.yahoo.documentapi.VisitorControlHandler;
import com.yahoo.documentapi.VisitorParameters;
import com.yahoo.documentapi.VisitorSession;
+import com.yahoo.messagebus.StaticThrottlePolicy;
import com.yahoo.metrics.simple.MetricReceiver;
import com.yahoo.vdslib.VisitorStatistics;
import com.yahoo.vespaclient.ClusterDef;
@@ -21,7 +22,9 @@ import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.*;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
@@ -119,16 +122,20 @@ public class OperationHandlerImplTest {
}
}
+ private static OperationHandler.VisitOptions.Builder optionsBuilder() {
+ return OperationHandler.VisitOptions.builder();
+ }
+
private static RestUri dummyVisitUri() throws Exception {
return new RestUri(new URI("http://localhost/document/v1/namespace/document-type/docid/"));
}
private static OperationHandler.VisitOptions visitOptionsWithWantedDocumentCount(int wantedDocumentCount) {
- return new OperationHandler.VisitOptions(Optional.empty(), Optional.empty(), Optional.of(wantedDocumentCount));
+ return optionsBuilder().wantedDocumentCount(wantedDocumentCount).build();
}
private static OperationHandler.VisitOptions emptyVisitOptions() {
- return new OperationHandler.VisitOptions(Optional.empty(), Optional.empty(), Optional.empty());
+ return optionsBuilder().build();
}
@Test
@@ -207,4 +214,30 @@ public class OperationHandlerImplTest {
assertThat(params.getMaxTotalHits(), is((long)OperationHandlerImpl.WANTED_DOCUMENT_COUNT_UPPER_BOUND));
}
+ @Test
+ public void field_set_covers_all_fields_by_default() throws Exception {
+ VisitorParameters params = generatedParametersFromVisitOptions(emptyVisitOptions());
+ assertThat(params.fieldSet(), equalTo("document-type:[document]"));
+ }
+
+ @Test
+ public void provided_fieldset_is_propagated_to_visitor_parameters() throws Exception {
+ VisitorParameters params = generatedParametersFromVisitOptions(optionsBuilder().fieldSet("document-type:bjarne").build());
+ assertThat(params.fieldSet(), equalTo("document-type:bjarne"));
+ }
+
+ @Test
+ public void concurrency_is_1_by_default() throws Exception {
+ VisitorParameters params = generatedParametersFromVisitOptions(emptyVisitOptions());
+ assertThat(params.getThrottlePolicy(), instanceOf(StaticThrottlePolicy.class));
+ assertThat(((StaticThrottlePolicy)params.getThrottlePolicy()).getMaxPendingCount(), is((int)1));
+ }
+
+ @Test
+ public void concurrency_is_propagated_to_visitor_parameters() throws Exception {
+ VisitorParameters params = generatedParametersFromVisitOptions(optionsBuilder().concurrency(3).build());
+ assertThat(params.getThrottlePolicy(), instanceOf(StaticThrottlePolicy.class));
+ assertThat(((StaticThrottlePolicy)params.getThrottlePolicy()).getMaxPendingCount(), is((int)3));
+ }
+
}
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/MockedOperationHandler.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/MockedOperationHandler.java
index f353013232f..3b16d9a378c 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/MockedOperationHandler.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/MockedOperationHandler.java
@@ -22,7 +22,9 @@ public class MockedOperationHandler implements OperationHandler {
return new VisitResult(Optional.of("token"), "List of json docs, cont token "
+ options.continuation.orElse("not set") + ", doc selection: '"
+ documentSelection + "'"
- + options.wantedDocumentCount.map(n -> String.format(", min docs returned: %d", n)).orElse(""));
+ + options.wantedDocumentCount.map(n -> String.format(", min docs returned: %d", n)).orElse("")
+ + options.fieldSet.map(s -> String.format(", field set: '%s'", s)).orElse("")
+ + options.concurrency.map(n -> String.format(", concurrency: %d", n)).orElse(""));
}
@Override
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/RestApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/RestApiTest.java
index 91390e3a0d8..faee5947794 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/RestApiTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/RestApiTest.java
@@ -304,11 +304,43 @@ public class RestApiTest {
}
@Test
- public void wanted_document_count_parameter_returns_error_response() throws IOException {
+ public void invalid_wanted_document_count_parameter_returns_error_response() throws IOException {
Request request = new Request(String.format("http://localhost:%s/document/v1/namespace/document-type/docid/?wantedDocumentCount=aardvark", getFirstListenPort()));
HttpGet get = new HttpGet(request.getUri());
String rest = doRest(get);
- assertThat(rest, containsString("Invalid 'wantedDocumentCount' value. Expected integer"));
+ assertThat(rest, containsString("Invalid 'wantedDocumentCount' value. Expected positive integer"));
+ }
+
+ @Test
+ public void negative_document_count_parameter_returns_error_response() throws IOException {
+ Request request = new Request(String.format("http://localhost:%s/document/v1/namespace/document-type/docid/?wantedDocumentCount=-1", getFirstListenPort()));
+ HttpGet get = new HttpGet(request.getUri());
+ String rest = doRest(get);
+ assertThat(rest, containsString("Invalid 'wantedDocumentCount' value. Expected positive integer"));
+ }
+
+ @Test
+ public void fieldset_parameter_is_propagated() throws IOException {
+ Request request = new Request(String.format("http://localhost:%s/document/v1/namespace/document-type/docid/?fieldSet=foo,baz", getFirstListenPort()));
+ HttpGet get = new HttpGet(request.getUri());
+ String rest = doRest(get);
+ assertThat(rest, containsString("field set: 'foo,baz'"));
+ }
+
+ @Test
+ public void concurrency_parameter_is_propagated() throws IOException {
+ Request request = new Request(String.format("http://localhost:%s/document/v1/namespace/document-type/docid/?concurrency=42", getFirstListenPort()));
+ HttpGet get = new HttpGet(request.getUri());
+ String rest = doRest(get);
+ assertThat(rest, containsString("concurrency: 42"));
+ }
+
+ @Test
+ public void invalid_concurrency_parameter_returns_error_response() throws IOException {
+ Request request = new Request(String.format("http://localhost:%s/document/v1/namespace/document-type/docid/?concurrency=badgers", getFirstListenPort()));
+ HttpGet get = new HttpGet(request.getUri());
+ String rest = doRest(get);
+ assertThat(rest, containsString("Invalid 'concurrency' value. Expected positive integer"));
}
private String doRest(HttpRequestBase request) throws IOException {