aboutsummaryrefslogtreecommitdiffstats
path: root/documentapi/src/test/java/com
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-05-19 16:08:16 +0200
committerJon Marius Venstad <venstad@gmail.com>2021-05-19 16:08:16 +0200
commit1f9a26d7699ecf65ae85bbb0da424550174aa662 (patch)
treefef34d43c67a982280aa7f975766235f140afc60 /documentapi/src/test/java/com
parent0b8987105250d81308c172816b5c41b13a135b24 (diff)
Add deadline to DocumentOperationParameters and use in MessageBusAsyncSession
Diffstat (limited to 'documentapi/src/test/java/com')
-rw-r--r--documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java
index 4ba51f3b3d8..78e4e49b78d 100644
--- a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java
+++ b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java
@@ -1,9 +1,17 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.documentapi.messagebus.test;
+import com.yahoo.document.Document;
+import com.yahoo.document.DocumentId;
+import com.yahoo.document.DocumentPut;
+import com.yahoo.document.DocumentType;
import com.yahoo.document.select.parser.ParseException;
+import com.yahoo.documentapi.AsyncParameters;
+import com.yahoo.documentapi.AsyncSession;
import com.yahoo.documentapi.DocumentAccess;
+import com.yahoo.documentapi.DocumentOperationParameters;
import com.yahoo.documentapi.ProgressToken;
+import com.yahoo.documentapi.Response;
import com.yahoo.documentapi.VisitorParameters;
import com.yahoo.documentapi.VisitorSession;
import com.yahoo.documentapi.messagebus.MessageBusDocumentAccess;
@@ -22,6 +30,13 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import java.time.Instant;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
@@ -96,4 +111,26 @@ public class MessageBusDocumentApiTestCase extends AbstractDocumentApiTestCase {
// TODO(vekterli): test remote-to-local message sending as well?
// TODO(vekterli): test DocumentAccess shutdown during active ession?
}
+
+ @Test
+ public void requireThatTimeoutWorks() throws InterruptedException {
+ CountDownLatch latch = new CountDownLatch(1);
+ AtomicReference<Response> response = new AtomicReference<>();
+ AsyncSession session = access().createAsyncSession(new AsyncParameters());
+ DocumentType type = access().getDocumentTypeManager().getDocumentType("music");
+ Document doc1 = new Document(type, new DocumentId("id:ns:music::1"));
+ assertTrue(session.put(new DocumentPut(doc1),
+ DocumentOperationParameters.parameters()
+ .withResponseHandler(result -> {
+ response.set(result);
+ latch.countDown();
+ })
+ .withDeadline(Instant.now().minusSeconds(1)))
+ .isSuccess());
+ assertTrue(latch.await(60, TimeUnit.SECONDS));
+ assertNotNull(response.get());
+ assertEquals(Response.Outcome.TIMEOUT, response.get().outcome());
+ session.destroy();
+ }
+
}