Refine search
@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 @Category({NeedsRunner.class, UsesTestStream.class}) public void testWaitBoundedInDefaultWindow() { testWaitWithParameters( Duration.standardMinutes(1) /* duration */, Duration.standardSeconds(15) /* lateness */, 20 /* numMainElements */, null, 20 /* numSignalElements */, null); }
/** Basic test of compatibility check between identical triggers. */ @Test public void testCompatibilityIdentical() throws Exception { Trigger t1 = AfterProcessingTime.pastFirstElementInPane().plusDelayOf(Duration.standardMinutes(1L)); Trigger t2 = AfterProcessingTime.pastFirstElementInPane().plusDelayOf(Duration.standardMinutes(1L)); assertTrue(t1.isCompatible(t2)); }
@Test @Ignore public void policyDocument() { GcsPolicyBuilder gcsPolicyBuilder = new GcsPolicyBuilder().expiresAfter(Duration.standardMinutes(10)); System.out.println(gcsPolicyBuilder.toJson()); }
/** Basic test of compatibility check between identical triggers. */ @Test public void testCompatibilityIdentical() throws Exception { TriggerStateMachine t1 = AfterProcessingTimeStateMachine.pastFirstElementInPane() .plusDelayOf(Duration.standardMinutes(1L)); TriggerStateMachine t2 = AfterProcessingTimeStateMachine.pastFirstElementInPane() .plusDelayOf(Duration.standardMinutes(1L)); assertTrue(t1.isCompatible(t2)); }
@Test public void testWithDelayToString() { TriggerStateMachine trigger = AfterProcessingTimeStateMachine.pastFirstElementInPane() .plusDelayOf(Duration.standardMinutes(5)); assertEquals( "AfterProcessingTime.pastFirstElementInPane().plusDelayOf(5 minutes)", trigger.toString()); }
@Test public void testDisplayData() { Duration gapDuration = Duration.standardMinutes(234); Sessions session = Sessions.withGapDuration(gapDuration); assertThat(DisplayData.from(session), hasDisplayItem("gapDuration", gapDuration)); } }
@Test public void testDefaultWindowMappingFnGlobalWindow() { PartitioningWindowFn<?, ?> windowFn = FixedWindows.of(Duration.standardMinutes(20L)); WindowMappingFn<?> mapping = windowFn.getDefaultWindowMappingFn(); thrown.expect(IllegalArgumentException.class); mapping.getSideInputWindow(GlobalWindow.INSTANCE); }
@Test public void testWithDelayToString() { Trigger trigger = AfterProcessingTime.pastFirstElementInPane().plusDelayOf(Duration.standardMinutes(5)); assertEquals( "AfterProcessingTime.pastFirstElementInPane().plusDelayOf(5 minutes)", trigger.toString()); }
@Test public void testWindowGetName() { assertEquals( "Window.Into()", Window.<String>into(FixedWindows.of(Duration.standardMinutes(10))).getName()); }
@Test public void unrelatedStepShouldNotFire() throws Exception { CountDownLatch latch = new CountDownLatch(1); WindowFn<Object, IntervalWindow> windowFn = FixedWindows.of(Duration.standardMinutes(10)); IntervalWindow window = new IntervalWindow(new Instant(0L), new Instant(0L).plus(Duration.standardMinutes(10))); executor.callOnGuaranteedFiring( sum, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.fireForWatermark(create, new Instant(0L).plus(Duration.standardMinutes(20))); assertThat(latch.await(500, TimeUnit.MILLISECONDS), equalTo(false)); }
@Test public void noCallbacksShouldFire() throws Exception { CountDownLatch latch = new CountDownLatch(1); WindowFn<Object, IntervalWindow> windowFn = FixedWindows.of(Duration.standardMinutes(10)); IntervalWindow window = new IntervalWindow(new Instant(0L), new Instant(0L).plus(Duration.standardMinutes(10))); executor.callOnGuaranteedFiring( create, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.fireForWatermark(create, new Instant(0L).plus(Duration.standardMinutes(5))); assertThat(latch.await(500, TimeUnit.MILLISECONDS), equalTo(false)); }
@Test public void noCallbacksShouldFire() throws Exception { CountDownLatch latch = new CountDownLatch(1); WindowFn<Object, IntervalWindow> windowFn = FixedWindows.of(Duration.standardMinutes(10)); IntervalWindow window = new IntervalWindow(new Instant(0L), new Instant(0L).plus(Duration.standardMinutes(10))); executor.callOnGuaranteedFiring( create, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.fireForWatermark(create, new Instant(0L).plus(Duration.standardMinutes(5))); assertThat(latch.await(500, TimeUnit.MILLISECONDS), equalTo(false)); }
@Test public void unrelatedStepShouldNotFire() throws Exception { CountDownLatch latch = new CountDownLatch(1); WindowFn<Object, IntervalWindow> windowFn = FixedWindows.of(Duration.standardMinutes(10)); IntervalWindow window = new IntervalWindow(new Instant(0L), new Instant(0L).plus(Duration.standardMinutes(10))); executor.callOnGuaranteedFiring( sum, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.fireForWatermark(create, new Instant(0L).plus(Duration.standardMinutes(20))); assertThat(latch.await(500, TimeUnit.MILLISECONDS), equalTo(false)); }
@Test @Category({NeedsRunner.class, UsesTestStream.class}) public void testWaitInGlobalWindow() { testWaitWithParameters( Duration.standardMinutes(1) /* duration */, Duration.standardSeconds(15) /* lateness */, 20 /* numMainElements */, new GlobalWindows(), 20 /* numSignalElements */, new GlobalWindows()); }
@Test public void beforeEndOfGlobalWindowSame() { FixedWindows windowFn = FixedWindows.of(Duration.standardMinutes(5)); Duration allowedLateness = Duration.standardMinutes(2); WindowingStrategy<?, ?> strategy = WindowingStrategy.globalDefault() .withWindowFn(windowFn) .withAllowedLateness(allowedLateness); IntervalWindow window = windowFn.assignWindow(new Instant(10)); assertThat( LateDataUtils.garbageCollectionTime(window, strategy), equalTo(window.maxTimestamp().plus(allowedLateness))); }
@Test public void multipleCallbacksShouldFireFires() throws Exception { CountDownLatch latch = new CountDownLatch(2); WindowFn<Object, IntervalWindow> windowFn = FixedWindows.of(Duration.standardMinutes(10)); IntervalWindow window = new IntervalWindow(new Instant(0L), new Instant(0L).plus(Duration.standardMinutes(10))); executor.callOnGuaranteedFiring( create, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.callOnGuaranteedFiring( create, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.fireForWatermark(create, new Instant(0L).plus(Duration.standardMinutes(10))); assertThat(latch.await(500, TimeUnit.MILLISECONDS), equalTo(true)); }
@Test public void multipleCallbacksShouldFireFires() throws Exception { CountDownLatch latch = new CountDownLatch(2); WindowFn<Object, IntervalWindow> windowFn = FixedWindows.of(Duration.standardMinutes(10)); IntervalWindow window = new IntervalWindow(new Instant(0L), new Instant(0L).plus(Duration.standardMinutes(10))); executor.callOnGuaranteedFiring( create, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.callOnGuaranteedFiring( create, window, WindowingStrategy.of(windowFn), new CountDownLatchCallback(latch)); executor.fireForWatermark(create, new Instant(0L).plus(Duration.standardMinutes(10))); assertThat(latch.await(500, TimeUnit.MILLISECONDS), equalTo(true)); }
@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 public void testBuiltUpToString() { TriggerStateMachine trigger = AfterWatermarkStateMachine.pastEndOfWindow() .withLateFirings( AfterProcessingTimeStateMachine.pastFirstElementInPane() .plusDelayOf(Duration.standardMinutes(10))); String expected = "AfterWatermark.pastEndOfWindow()" + ".withLateFirings(AfterProcessingTime" + ".pastFirstElementInPane()" + ".plusDelayOf(10 minutes))"; assertEquals(expected, trigger.toString()); } }