@Test public void testStateMachineForAfterProcessingTime() { Duration minutes = Duration.standardMinutes(94); Duration hours = Duration.standardHours(13); RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setAfterProcessingTime( RunnerApi.Trigger.AfterProcessingTime.newBuilder() .addTimestampTransforms( RunnerApi.TimestampTransform.newBuilder() .setDelay( RunnerApi.TimestampTransform.Delay.newBuilder() .setDelayMillis(minutes.getMillis()))) .addTimestampTransforms( RunnerApi.TimestampTransform.newBuilder() .setAlignTo( RunnerApi.TimestampTransform.AlignTo.newBuilder() .setPeriod(hours.getMillis())))) .build(); AfterDelayFromFirstElementStateMachine machine = (AfterDelayFromFirstElementStateMachine) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat(machine.getTimeDomain(), equalTo(TimeDomain.PROCESSING_TIME)); }
@Test public void testAfterAllTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setAfterAll( RunnerApi.Trigger.AfterAll.newBuilder() .addSubtriggers(subtrigger1) .addSubtriggers(subtrigger2)) .build(); AfterAllStateMachine machine = (AfterAllStateMachine) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat(machine, equalTo(AfterAllStateMachine.of(submachine1, submachine2))); }
@Test public void testAfterFirstTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setAfterAny( RunnerApi.Trigger.AfterAny.newBuilder() .addSubtriggers(subtrigger1) .addSubtriggers(subtrigger2)) .build(); AfterFirstStateMachine machine = (AfterFirstStateMachine) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat(machine, equalTo(AfterFirstStateMachine.of(submachine1, submachine2))); }
@Test public void testAfterWatermarkEarlyLateTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setAfterEndOfWindow( RunnerApi.Trigger.AfterEndOfWindow.newBuilder() .setEarlyFirings(subtrigger1) .setLateFirings(subtrigger2)) .build(); AfterWatermarkStateMachine.AfterWatermarkEarlyAndLate machine = (AfterWatermarkStateMachine.AfterWatermarkEarlyAndLate) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat( machine, equalTo( AfterWatermarkStateMachine.pastEndOfWindow() .withEarlyFirings(submachine1) .withLateFirings(submachine2))); }
@Test public void testAfterWatermarkEarlyTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setAfterEndOfWindow( RunnerApi.Trigger.AfterEndOfWindow.newBuilder().setEarlyFirings(subtrigger1)) .build(); AfterWatermarkStateMachine.AfterWatermarkEarlyAndLate machine = (AfterWatermarkStateMachine.AfterWatermarkEarlyAndLate) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat( machine, equalTo(AfterWatermarkStateMachine.pastEndOfWindow().withEarlyFirings(submachine1))); }
@Test public void testStateMachineForAfterWatermark() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setAfterEndOfWindow(RunnerApi.Trigger.AfterEndOfWindow.getDefaultInstance()) .build(); AfterWatermarkStateMachine.FromEndOfWindow machine = (AfterWatermarkStateMachine.FromEndOfWindow) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat( TriggerStateMachines.stateMachineForTrigger(trigger), instanceOf(AfterWatermarkStateMachine.FromEndOfWindow.class)); }
@Test public void testAfterEachTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setAfterEach( RunnerApi.Trigger.AfterEach.newBuilder() .addSubtriggers(subtrigger1) .addSubtriggers(subtrigger2)) .build(); AfterEachStateMachine machine = (AfterEachStateMachine) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat(machine, equalTo(AfterEachStateMachine.inOrder(submachine1, submachine2))); }
private RunnerApi.Trigger convertSpecific(AfterSynchronizedProcessingTime v) { return RunnerApi.Trigger.newBuilder() .setAfterSynchronizedProcessingTime( RunnerApi.Trigger.AfterSynchronizedProcessingTime.getDefaultInstance()) .build(); }
@Test public void testOrFinallyTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setOrFinally( RunnerApi.Trigger.OrFinally.newBuilder() .setMain(subtrigger1) .setFinally(subtrigger2)) .build(); OrFinallyStateMachine machine = (OrFinallyStateMachine) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat(machine, equalTo(submachine1.orFinally(submachine2))); }
private RunnerApi.Trigger convertSpecific(AfterWatermarkEarlyAndLate v) { RunnerApi.Trigger.AfterEndOfWindow.Builder builder = RunnerApi.Trigger.AfterEndOfWindow.newBuilder(); builder.setEarlyFirings(toProto(v.getEarlyTrigger())); if (v.getLateTrigger() != null) { builder.setLateFirings(toProto(v.getLateTrigger())); } return RunnerApi.Trigger.newBuilder().setAfterEndOfWindow(builder).build(); }
private RunnerApi.Trigger convertSpecific(FromEndOfWindow v) { return RunnerApi.Trigger.newBuilder() .setAfterEndOfWindow(RunnerApi.Trigger.AfterEndOfWindow.newBuilder()) .build(); }
@Test public void testStateMachineForAfterPane() { int count = 37; RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setElementCount(RunnerApi.Trigger.ElementCount.newBuilder().setElementCount(count)) .build(); AfterPaneStateMachine machine = (AfterPaneStateMachine) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat(machine.getElementCount(), equalTo(trigger.getElementCount().getElementCount())); }
private RunnerApi.Trigger convertSpecific(AfterFirst v) { RunnerApi.Trigger.AfterAny.Builder builder = RunnerApi.Trigger.AfterAny.newBuilder(); for (Trigger subtrigger : v.subTriggers()) { builder.addSubtriggers(toProto(subtrigger)); } return RunnerApi.Trigger.newBuilder().setAfterAny(builder).build(); }
@Test public void testRepeatedlyTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setRepeat(RunnerApi.Trigger.Repeat.newBuilder().setSubtrigger(subtrigger1)) .build(); RepeatedlyStateMachine machine = (RepeatedlyStateMachine) TriggerStateMachines.stateMachineForTrigger(trigger); assertThat(machine, equalTo(RepeatedlyStateMachine.forever(submachine1))); } }
private RunnerApi.Trigger convertSpecific(AfterEach v) { RunnerApi.Trigger.AfterEach.Builder builder = RunnerApi.Trigger.AfterEach.newBuilder(); for (Trigger subtrigger : v.subTriggers()) { builder.addSubtriggers(toProto(subtrigger)); } return RunnerApi.Trigger.newBuilder().setAfterEach(builder).build(); }
private RunnerApi.Trigger convertSpecific(OrFinallyTrigger v) { return RunnerApi.Trigger.newBuilder() .setOrFinally( RunnerApi.Trigger.OrFinally.newBuilder() .setMain(toProto(v.getMainTrigger())) .setFinally(toProto(v.getUntilTrigger()))) .build(); }
private RunnerApi.Trigger convertSpecific(AfterPane v) { return RunnerApi.Trigger.newBuilder() .setElementCount( RunnerApi.Trigger.ElementCount.newBuilder().setElementCount(v.getElementCount())) .build(); }
@Test public void testNeverTranslation() { RunnerApi.Trigger trigger = RunnerApi.Trigger.newBuilder() .setNever(RunnerApi.Trigger.Never.getDefaultInstance()) .build(); NeverStateMachine machine = (NeverStateMachine) checkNotNull(TriggerStateMachines.stateMachineForTrigger(trigger)); // No parameters, so if it doesn't crash, we win! }
private RunnerApi.Trigger convertSpecific(DefaultTrigger v) { return RunnerApi.Trigger.newBuilder() .setDefault(RunnerApi.Trigger.Default.getDefaultInstance()) .build(); }