diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-05-19 16:08:16 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-05-19 16:08:16 +0200 |
commit | 1f9a26d7699ecf65ae85bbb0da424550174aa662 (patch) | |
tree | fef34d43c67a982280aa7f975766235f140afc60 /documentapi/src/test/java/com | |
parent | 0b8987105250d81308c172816b5c41b13a135b24 (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.java | 37 |
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(); + } + } |