Refine search
@Test public void testFormatElapsedTime() { assertEquals("00:00", DateUtils.formatElapsedTime(Duration.standardSeconds(0))); assertEquals("00:05", DateUtils.formatElapsedTime(Duration.standardSeconds(5))); assertEquals("00:15", DateUtils.formatElapsedTime(Duration.standardSeconds(15))); assertEquals("02:30", DateUtils.formatElapsedTime(Duration.standardSeconds(150))); assertEquals("33:20", DateUtils.formatElapsedTime(Duration.standardSeconds(2000))); assertEquals("4:10:00", DateUtils.formatElapsedTime(Duration.standardSeconds(15000))); assertEquals("292:35:33", DateUtils.formatElapsedTime(Duration.standardSeconds(1053333))); }
@Test public void testFormatDuration() { Context ctx = InstrumentationRegistry.getContext(); assertEquals("1 second", DateUtils.formatDuration(ctx, Duration.standardSeconds(1))); assertEquals("-1 seconds", DateUtils.formatDuration(ctx, Duration.standardSeconds(-1))); assertEquals("30 seconds", DateUtils.formatDuration(ctx, Duration.standardSeconds(30))); assertEquals("-30 seconds", DateUtils.formatDuration(ctx, Duration.standardSeconds(-30))); assertEquals("1 minute", DateUtils.formatDuration(ctx, Duration.standardMinutes(1))); assertEquals("-1 minutes", DateUtils.formatDuration(ctx, Duration.standardMinutes(-1))); assertEquals("30 minutes", DateUtils.formatDuration(ctx, Duration.standardMinutes(30))); assertEquals("-30 minutes", DateUtils.formatDuration(ctx, Duration.standardMinutes(-30))); assertEquals("1 hour", DateUtils.formatDuration(ctx, Duration.standardHours(1))); assertEquals("-1 hours", DateUtils.formatDuration(ctx, Duration.standardHours(-1))); assertEquals("12 hours", DateUtils.formatDuration(ctx, Duration.standardHours(12))); assertEquals("-12 hours", DateUtils.formatDuration(ctx, Duration.standardHours(-12))); } }
@Test public void testProcessRunnerWithTimeout() { ProcessResult result = RUNNER.executeCommands(Arrays.asList("sleep", "5"), Duration.standardSeconds(1)); Assert.assertNotEquals(result.getReturnCode(), 0); Assert.assertTrue(result.getStdError().length() > 0); Assert.assertEquals(result.getStdError(), "Operation timed out, aborted"); }
@Test public void testProcessRunnerWithTimeoutAndException() { ProcessResult result = RUNNER.executeCommands(Arrays.asList("ls", "/some/dir/that/should/not/exist"), Duration.standardSeconds(2)); Assert.assertNotEquals(result.getReturnCode(), 0); Assert.assertTrue(result.getStdError().length() > 0); Assert.assertNotEquals(result.getStdError(), "Operation timed out, aborted"); }
@Test(expected = RuntimeException.class) public void testNonRetryIOException() throws Exception { IOException ioe = new IOException("Test"); when(call.call()).thenThrow(ioe); DynamoDBFibonacciRetryer retryer = new DynamoDBFibonacciRetryer(Duration.standardSeconds(10)); try { retryer.runWithRetry(call, null, null); } finally { verify(call).call(); } } }
@Test public void testSuceedCall() throws Exception { DynamoDBFibonacciRetryer retryer = new DynamoDBFibonacciRetryer(Duration.standardSeconds(10)); retryer.runWithRetry(call, null, null); verify(call).call(); }
@Test @Category({NeedsRunner.class, UsesTestStream.class}) public void testWaitWithSignalInSlidingWindows() { testWaitWithParameters( Duration.standardMinutes(1) /* duration */, Duration.standardSeconds(15) /* lateness */, 20 /* numMainElements */, FixedWindows.of(Duration.standardSeconds(15)), 20 /* numSignalElements */, SlidingWindows.of(Duration.standardSeconds(7)).every(Duration.standardSeconds(1))); }
@Test @Category({NeedsRunner.class, UsesTestStream.class}) public void testWaitWithSameFixedWindows() { testWaitWithParameters( Duration.standardMinutes(1) /* duration */, Duration.standardSeconds(15) /* lateness */, 20 /* numMainElements */, FixedWindows.of(Duration.standardSeconds(15)), 20 /* numSignalElements */, FixedWindows.of(Duration.standardSeconds(15))); }
@Test @Category({NeedsRunner.class, UsesTestStream.class}) public void testWaitWithDifferentFixedWindows() { testWaitWithParameters( Duration.standardMinutes(1) /* duration */, Duration.standardSeconds(15) /* lateness */, 20 /* numMainElements */, FixedWindows.of(Duration.standardSeconds(15)), 20 /* numSignalElements */, FixedWindows.of(Duration.standardSeconds(7))); }
@Test(expected = RuntimeException.class) public void testRetryACEException() throws Exception { AmazonClientException ace = new AmazonClientException("Test"); when(call.call()).thenThrow(ace); DynamoDBFibonacciRetryer retryer = new DynamoDBFibonacciRetryer(Duration.standardSeconds(10)); try { retryer.runWithRetry(call, null, null); } finally { verify(call, atLeast(2)).call(); verify(call, atMost(15)).call(); } }
@Test public void getTotalBacklogBytesShouldReturnLastSeenValueWhenCalledFrequently() throws TransientKinesisException, IOException { KinesisReader backlogCachingReader = createReader(Duration.standardSeconds(30)); backlogCachingReader.start(); when(kinesisSource.getStreamName()).thenReturn("stream1"); when(kinesis.getBacklogBytes(eq("stream1"), any(Instant.class))) .thenReturn(10L) .thenReturn(20L); assertThat(backlogCachingReader.getTotalBacklogBytes()).isEqualTo(10); assertThat(backlogCachingReader.getTotalBacklogBytes()).isEqualTo(10); } }
@Test public void should_not_pause_after_last_failure() throws Exception { Retryer failFast = new Retryer(0, Duration.standardSeconds(1)); when(operation.call()).thenThrow(new DockerExecutionException()); Stopwatch stopwatch = Stopwatch.createStarted(); try { failFast.runWithRetries(operation); } catch (DockerExecutionException e) { // expected } assertThat(stopwatch.elapsed(TimeUnit.MILLISECONDS), lessThan(1000L)); }
@Test(expected = RuntimeException.class) public void testNonRetryableASEException() throws Exception { AmazonServiceException ase = new AmazonServiceException("Test"); ase.setErrorCode("ArbitNonRetryableException"); ase.setStatusCode(400); when(call.call()).thenThrow(ase); DynamoDBFibonacciRetryer retryer = new DynamoDBFibonacciRetryer(Duration.standardSeconds(10)); try { retryer.runWithRetry(call, null, null); } finally { verify(call).call(); } }
@Test @Category({NeedsRunner.class, UsesTestStream.class}) public void testWaitWithSomeSignalWindowsEmpty() { testWaitWithParameters( Duration.standardMinutes(1) /* duration */, Duration.ZERO /* lateness */, 20 /* numMainElements */, FixedWindows.of(Duration.standardSeconds(1)), 10 /* numSignalElements */, FixedWindows.of(Duration.standardSeconds(1))); }
@Test(expected = RuntimeException.class) public void testRetryableASEException() throws Exception { AmazonServiceException ase = new AmazonServiceException("Test"); ase.setErrorCode("ArbitRetryableException"); ase.setStatusCode(500); when(call.call()).thenThrow(ase); DynamoDBFibonacciRetryer retryer = new DynamoDBFibonacciRetryer(Duration.standardSeconds(10)); try { retryer.runWithRetry(call, null, null); } finally { verify(call, atLeastOnce()).call(); verify(call, atMost(15)).call(); } }
@Test @Category({NeedsRunner.class, UsesTestStream.class}) public void testWaitBoundedInDefaultWindow() { testWaitWithParameters( Duration.standardMinutes(1) /* duration */, Duration.standardSeconds(15) /* lateness */, 20 /* numMainElements */, null, 20 /* numSignalElements */, null); }
@Test(expected = RuntimeException.class) public void testRetryableASEException2() throws Exception { AmazonServiceException ase = new AmazonServiceException("Test"); ase.setErrorCode("ArbitRetryableException"); ase.setStatusCode(503); when(call.call()).thenThrow(ase); DynamoDBFibonacciRetryer retryer = new DynamoDBFibonacciRetryer(Duration.standardSeconds(10)); try { retryer.runWithRetry(call, null, null); } finally { verify(call, atLeast(2)).call(); verify(call, atMost(15)).call(); } }
@Test(expected = RuntimeException.class) public void testRetryThrottleException() throws Exception { AmazonServiceException ase = new AmazonServiceException("Test"); ase.setErrorCode("ProvisionedThroughputExceededException"); ase.setStatusCode(400); when(call.call()).thenThrow(ase); DynamoDBFibonacciRetryer retryer = new DynamoDBFibonacciRetryer(Duration.standardSeconds(10)); try { retryer.runWithRetry(call, null, null); } finally { verify(call, atLeast(2)).call(); verify(call, atMost(15)).call(); } }
@Test public void testDisplayData() { Duration offset = Duration.standardSeconds(1234); Duration size = Duration.standardSeconds(2345); FixedWindows fixedWindows = FixedWindows.of(size).withOffset(offset); DisplayData displayData = DisplayData.from(fixedWindows); assertThat(displayData, hasDisplayItem("size", size)); assertThat(displayData, hasDisplayItem("offset", offset)); } }
@Test public void testTerminationConditionsEitherOf() { Instant now = Instant.now(); Watch.Growth.AfterTotalOf<Object> a = Growth.afterTotalOf(standardSeconds(5)); Watch.Growth.AfterTotalOf<Object> b = Growth.afterTotalOf(standardSeconds(10)); Watch.Growth.BinaryCombined< Object, KV<Instant, ReadableDuration>, KV<Instant, ReadableDuration>> c = eitherOf(a, b); KV<KV<Instant, ReadableDuration>, KV<Instant, ReadableDuration>> state = c.forNewInput(now, null); assertFalse(c.canStopPolling(now.plus(standardSeconds(3)), state)); assertTrue(c.canStopPolling(now.plus(standardSeconds(7)), state)); assertTrue(c.canStopPolling(now.plus(standardSeconds(12)), state)); }