normalProcessors.add(new DataAggregatorProcessor<>(TimerData.class, 5000, new TimerDataAggregator(), true)); normalProcessors.add(new DataAggregatorProcessor<>(SqlStatementData.class, 5000, new SqlStatementDataAggregator(true), true));
if (saveClassesList.contains(TimerData.class)) { saveClassesList.remove(TimerData.class); DataAggregatorProcessor<TimerData> dataAggregatorProcessor = new DataAggregatorProcessor<>(TimerData.class, aggregationPeriod, new TimerDataAggregator(), writeInvocationAffiliation); normalProcessors.add(dataAggregatorProcessor); DataAggregatorProcessor<SqlStatementData> dataAggregatorProcessor = new DataAggregatorProcessor<>(SqlStatementData.class, aggregationPeriod, new SqlStatementDataAggregator(true), writeInvocationAffiliation); normalProcessors.add(dataAggregatorProcessor);
/** * Test the {@link DataAggregatorProcessor} for a correct aggregation of data. */ @Test public void dataAggregatorProcessorAggregation() { int aggregationPeriod = 100; DataAggregatorProcessor<TimerData> dataAggregatorProcessor = new DataAggregatorProcessor<>(TimerData.class, aggregationPeriod, new TimerDataAggregator(), true); dataAggregatorProcessor.setStorageWriter(storageWriter); long timestampValue = new Date().getTime(); Random random = new Random(); long platformIdent = random.nextLong(); long sensorTypeIdent = random.nextLong(); long methodIdent = random.nextLong(); TimerData timerData = new TimerData(new Timestamp(timestampValue), platformIdent, sensorTypeIdent, methodIdent); assertThat(dataAggregatorProcessor.canBeProcessed(timerData), is(true)); final int elements = 1000; for (int i = 0; i < (elements / 2); i++) { dataAggregatorProcessor.process(timerData); } Collection<Future<Void>> futures = dataAggregatorProcessor.flush(); assertThat(futures, hasSize(1)); verify(storageWriter, times(1)).write(Matchers.<TimerData> anyObject()); }
when(aggregator.getAggregationKey(Matchers.<TimerData> anyObject())).thenReturn(1L); DataAggregatorProcessor<TimerData> dataProcessor = new DataAggregatorProcessor<>(TimerData.class, 1000, 1, aggregator, false); IWriter writer = mock(IWriter.class); dataProcessor.setStorageWriter(writer);