/** * Test that {@link TimeFrameDataProcessor} only passed the data that belongs to the given time * frame. */ @Test public void testTimeframeProcessor() { DefaultData defaultData = mock(DefaultData.class); long time = 10000000; long past = time - 1000; long future = time + 1000; AbstractDataProcessor dataProcessor = mock(AbstractDataProcessor.class); List<AbstractDataProcessor> chainedProcessors = new ArrayList<>(); chainedProcessors.add(dataProcessor); TimeFrameDataProcessor timeFrameDataProcessor = new TimeFrameDataProcessor(new Date(past), new Date(future), chainedProcessors); assertThat(timeFrameDataProcessor.canBeProcessed(defaultData), is(true)); Mockito.when(defaultData.getTimeStamp()).thenReturn(new Timestamp(time)); timeFrameDataProcessor.process(defaultData); Mockito.when(defaultData.getTimeStamp()).thenReturn(new Timestamp(past)); timeFrameDataProcessor.process(defaultData); Mockito.when(defaultData.getTimeStamp()).thenReturn(new Timestamp(future)); timeFrameDataProcessor.process(defaultData); verify(dataProcessor, times(3)).process(defaultData); Mockito.when(defaultData.getTimeStamp()).thenReturn(new Timestamp(past - 1000)); timeFrameDataProcessor.process(defaultData); Mockito.when(defaultData.getTimeStamp()).thenReturn(new Timestamp(future + 1000)); timeFrameDataProcessor.process(defaultData); verify(dataProcessor, times(3)).process(defaultData); }