diff options
Diffstat (limited to 'vespa-http-client/src/test/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationProcessorTest.java')
-rw-r--r-- | vespa-http-client/src/test/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationProcessorTest.java | 81 |
1 files changed, 55 insertions, 26 deletions
diff --git a/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationProcessorTest.java b/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationProcessorTest.java index 78f616d0e36..0c636ba804e 100644 --- a/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationProcessorTest.java +++ b/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationProcessorTest.java @@ -19,8 +19,11 @@ import java.util.concurrent.TimeUnit; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.mock; @@ -40,10 +43,10 @@ public class OperationProcessorTest { @Test public void testBasic() { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .build(); OperationProcessor q = new OperationProcessor( @@ -53,26 +56,26 @@ public class OperationProcessorTest { q.resultReceived(new EndpointResult("foo", new Result.Detail(null)), 0); - assertThat(queue.size(), is(0)); + assertEquals(0, queue.size()); q.sendDocument(doc1); - assertThat(queue.size(), is(0)); + assertEquals(0, queue.size()); q.resultReceived(new EndpointResult(doc1.getOperationId(), new Result.Detail(Endpoint.create("a"))), 0); - assertThat(queue.size(), is(0)); + assertEquals(0, queue.size()); q.resultReceived(new EndpointResult(doc1.getOperationId(), new Result.Detail(Endpoint.create("b"))), 1); - assertThat(queue.size(), is(0)); + assertEquals(0, queue.size()); q.resultReceived(new EndpointResult(doc1.getOperationId(), new Result.Detail(Endpoint.create("c"))), 2); - assertThat(queue.size(), is(0)); + assertEquals(0, queue.size()); q.resultReceived(new EndpointResult(doc1.getOperationId(), new Result.Detail(Endpoint.create("d"))), 3); - assertThat(queue.size(), is(1)); + assertEquals(1, queue.size()); q.resultReceived(new EndpointResult(doc1.getOperationId(), new Result.Detail(Endpoint.create("e"))), 0); - assertThat(queue.size(), is(1)); + assertEquals(1, queue.size()); //check a, b, c, d Result aggregated = queue.poll(); @@ -121,8 +124,8 @@ public class OperationProcessorTest { @Test public void testBlockingOfOperationsTwoEndpoints() { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .setConnectionParams(new ConnectionParams.Builder().build()) .build(); OperationProcessor operationProcessor = new OperationProcessor( @@ -159,7 +162,7 @@ public class OperationProcessorTest { @Test public void testBlockingOfOperationsToSameDocIdWithTwoOperations() { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .setConnectionParams(new ConnectionParams.Builder().build()) .build(); @@ -192,7 +195,7 @@ public class OperationProcessorTest { @Test public void testBlockingOfOperationsToSameDocIdMany() { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .setConnectionParams(new ConnectionParams.Builder().build()) .build(); @@ -225,7 +228,7 @@ public class OperationProcessorTest { @Test public void testMixOfBlockingAndNonBlocking() { - Endpoint endpoint = Endpoint.create("host"); + Endpoint endpoint = Endpoint.create("localhost"); SessionParams sessionParams = new SessionParams.Builder() .addCluster(new Cluster.Builder().addEndpoint(endpoint).build()) .setConnectionParams(new ConnectionParams.Builder().build()) @@ -266,9 +269,9 @@ public class OperationProcessorTest { @Test public void assertThatDuplicateResultsFromOneClusterWorks() { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .build(); OperationProcessor q = new OperationProcessor( @@ -292,9 +295,9 @@ public class OperationProcessorTest { @Test public void testMultipleDuplicateDocIds() { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .build(); OperationProcessor q = new OperationProcessor( @@ -354,7 +357,7 @@ public class OperationProcessorTest { @Test public void testWaitBlocks() throws InterruptedException { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("host")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .build(); OperationProcessor operationProcessor = new OperationProcessor( @@ -376,17 +379,17 @@ public class OperationProcessorTest { started.await(); // We want the test to pass fast so we only wait 40mS to see that it is blocking. This might lead to // some false positives, but that is ok. - assertThat(done.await(40, TimeUnit.MILLISECONDS), is(false)); + assertFalse(done.await(40, TimeUnit.MILLISECONDS)); operationProcessor.resultReceived( new EndpointResult(doc1.getOperationId(), new Result.Detail(Endpoint.create("d"))), 0); - assertThat(done.await(120, TimeUnit.SECONDS), is(true)); + assertTrue(done.await(120, TimeUnit.SECONDS)); } @Test public void testSendsResponseToQueuedDocumentOnClose() throws InterruptedException { SessionParams sessionParams = new SessionParams.Builder() - .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("#$#")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) .build(); ScheduledThreadPoolExecutor executor = mock(ScheduledThreadPoolExecutor.class); @@ -410,4 +413,30 @@ public class OperationProcessorTest { operationProcessor.close(); countDownLatch.await(); } + + @Test + public void unknownHostThrowsExceptionAtConstructionTime() { + try { + SessionParams sessionParams = new SessionParams.Builder() + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("localhost")).build()) + .addCluster(new Cluster.Builder().addEndpoint(Endpoint.create("unknown.invalid")).build()) + .build(); + ScheduledThreadPoolExecutor executor = mock(ScheduledThreadPoolExecutor.class); + + CountDownLatch countDownLatch = new CountDownLatch(3); + + OperationProcessor operationProcessor = new OperationProcessor( + new IncompleteResultsThrottler(19, 19, null, null), + (docId, documentResult) -> { + countDownLatch.countDown(); + }, + sessionParams, executor); + + fail("Expected exception"); + } + catch (IllegalArgumentException e) { + assertEquals("Unknown host: unknown.invalid:4080 ssl=false", e.getMessage()); + } + } + } |