@Before public void init() { MockitoAnnotations.initMocks(this); streamDeferrer = new StreamDeferrer(); streamDeferrer.setReceiver(receiver); }
@Override protected void onSetReceiver() { buffer.setReceiver(getReceiver()); }
@Test public void shouldDeferStreamEventsUntilEndRecordIsReceived() { streamDeferrer.startRecord("1"); streamDeferrer.literal("l", "v"); streamDeferrer.startEntity("e"); streamDeferrer.endEntity(); verifyZeroInteractions(receiver); streamDeferrer.endRecord(); InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord("1"); ordered.verify(receiver).literal("l", "v"); ordered.verify(receiver).startEntity("e"); ordered.verify(receiver).endEntity(); ordered.verify(receiver).endRecord(); }
@Test public void shouldDiscardDeferredEventsOnResetStream() { streamDeferrer.startRecord("1"); streamDeferrer.literal("l", "v"); streamDeferrer.resetStream(); streamDeferrer.endRecord(); InOrder ordered = inOrder(receiver); ordered.verify(receiver, never()).startRecord("1"); ordered.verify(receiver, never()).literal("l", "v"); ordered.verify(receiver).endRecord(); }
@Test public void shouldDiscardDeferredEventsIfAnotherStartRecordIsReceived() { streamDeferrer.startRecord("1"); streamDeferrer.literal("l1", "v1"); streamDeferrer.startRecord("2"); streamDeferrer.literal("l2", "v2"); streamDeferrer.endRecord(); InOrder ordered = inOrder(receiver); ordered.verify(receiver, never()).startRecord("1"); ordered.verify(receiver, never()).literal("l1", "v1"); ordered.verify(receiver).startRecord("2"); ordered.verify(receiver).literal("l2", "v2"); ordered.verify(receiver).endRecord(); }