aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java')
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java31
1 files changed, 26 insertions, 5 deletions
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
index de907f70c19..232d49129d7 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
@@ -3,7 +3,6 @@ package com.yahoo.document.restapi.resource;
import com.yahoo.cloud.config.ClusterListConfig;
import com.yahoo.container.jdisc.RequestHandlerTestDriver;
-import com.yahoo.docproc.jdisc.metric.NullMetric;
import com.yahoo.document.BucketId;
import com.yahoo.document.Document;
import com.yahoo.document.DocumentId;
@@ -44,6 +43,7 @@ import com.yahoo.documentapi.VisitorResponse;
import com.yahoo.documentapi.VisitorSession;
import com.yahoo.documentapi.messagebus.protocol.PutDocumentMessage;
import com.yahoo.jdisc.Metric;
+import com.yahoo.jdisc.test.MockMetric;
import com.yahoo.messagebus.StaticThrottlePolicy;
import com.yahoo.messagebus.Trace;
import com.yahoo.messagebus.TraceNode;
@@ -126,7 +126,7 @@ public class DocumentV1ApiTest {
Map.of("music", "default")));
ManualClock clock;
MockDocumentAccess access;
- Metric metric;
+ MockMetric metric;
MetricReceiver metrics;
DocumentV1ApiHandler handler;
@@ -134,7 +134,7 @@ public class DocumentV1ApiTest {
public void setUp() {
clock = new ManualClock();
access = new MockDocumentAccess(docConfig);
- metric = new NullMetric();
+ metric = new MockMetric();
metrics = new MetricReceiver.MockReceiver();
handler = new DocumentV1ApiHandler(clock, Duration.ofMillis(1), metric, metrics, access, docConfig,
executorConfig, clusterConfig, bucketConfig);
@@ -614,6 +614,23 @@ public class DocumentV1ApiTest {
"}", response.readAll());
assertEquals(400, response.getStatus());
+ // PUT on document which is not found is a 200
+ access.session.expect((update, parameters) -> {
+ parameters.responseHandler().get().handleResponse(new UpdateResponse(0, false));
+ return new Result(Result.ResultType.SUCCESS, null);
+ });
+ response = driver.sendRequest("http://localhost/document/v1/space/music/docid/sonny", PUT,
+ "{" +
+ " \"fields\": {" +
+ " \"artist\": { \"assign\": \"The Shivers\" }" +
+ " }" +
+ "}");
+ assertSameJson("{" +
+ " \"pathId\": \"/document/v1/space/music/docid/sonny\"," +
+ " \"id\": \"id:space:music::sonny\"" +
+ "}", response.readAll());
+ assertEquals(200, response.getStatus());
+
// DELETE with full document ID is a document remove operation.
access.session.expect((remove, parameters) -> {
DocumentRemove expectedRemove = new DocumentRemove(doc2.getId());
@@ -667,7 +684,7 @@ public class DocumentV1ApiTest {
parameters.responseHandler().get().handleResponse(new Response(0, "disk full", Response.Outcome.INSUFFICIENT_STORAGE));
return new Result(Result.ResultType.SUCCESS, null);
});
- response = driver.sendRequest("http://localhost/document/v1/space/music/number/1/two");
+ response = driver.sendRequest("http://localhost/document/v1/space/music/number/1/two", DELETE);
assertSameJson("{" +
" \"pathId\": \"/document/v1/space/music/number/1/two\"," +
" \"id\": \"id:space:music:n=1:two\"," +
@@ -680,7 +697,7 @@ public class DocumentV1ApiTest {
parameters.responseHandler().get().handleResponse(new Response(0, "no dice", Response.Outcome.CONDITION_FAILED));
return new Result(Result.ResultType.SUCCESS, null);
});
- response = driver.sendRequest("http://localhost/document/v1/space/music/number/1/two");
+ response = driver.sendRequest("http://localhost/document/v1/space/music/number/1/two", DELETE);
assertSameJson("{" +
" \"pathId\": \"/document/v1/space/music/number/1/two\"," +
" \"id\": \"id:space:music:n=1:two\"," +
@@ -746,6 +763,10 @@ public class DocumentV1ApiTest {
handler.get().handleResponse(new Response(0)); // response may eventually arrive, but too late.
}
+ assertEquals(3, metric.metrics().get("httpapi_succeeded").get(Map.of()), 0);
+ assertEquals(1, metric.metrics().get("httpapi_condition_not_met").get(Map.of()), 0);
+ assertEquals(1, metric.metrics().get("httpapi_not_found").get(Map.of()), 0);
+ assertEquals(1, metric.metrics().get("httpapi_failed").get(Map.of()), 0);
driver.close();
}