@Test
private void ifTheAggregatedObjectIsNotDefineInTheMapItMustBeAggregated() {
InvocationSequenceData invocationSequenceData = new InvocationSequenceData(new Timestamp(10L), 10L, 20L, 2L);
diagnosisDataAggregationPerformer = new DiagnosisDataAggregationPerformer();
SqlStatementData sqlStatementData = new SqlStatementData(new Timestamp(10), 10, 10, 108L);
sqlStatementData.setCount(1);
sqlStatementData.setSql("blahblahblah");
invocationSequenceData.setSqlStatementData(sqlStatementData);
TimerData timerData = new TimerData(new Timestamp(10), 10, 10, 108L);
invocationSequenceData.setTimerData(timerData);
Object key = new Pair<Long, String>(invocationSequenceData.getMethodIdent(), invocationSequenceData.getSqlStatementData().getSql());
AggregatedDiagnosisData alreadyAggregatedObject = new AggregatedDiagnosisData(SourceType.TIMERDATA, invocationSequenceData, key);
diagnosisDataAggregationPerformer.diagnosisDataAggregationMap.put(key, alreadyAggregatedObject);
InvocationSequenceData secondInvocationSequenceData = new InvocationSequenceData(new Timestamp(10L), 10L, 20L, 2L);
secondInvocationSequenceData.setTimerData(timerData);
List<InvocationSequenceData> invocationSequenceDataList = new ArrayList<>();
invocationSequenceDataList.add(invocationSequenceData);
invocationSequenceDataList.add(secondInvocationSequenceData);
diagnosisDataAggregationPerformer.aggregateInvocationSequenceDataList(invocationSequenceDataList);
List<AggregatedDiagnosisData> resultList = diagnosisDataAggregationPerformer.getAggregationResultList();
assertThat("The list must have 2 aggregated objects", resultList.size(), is(2));
assertThat("The first aggregated object must have the same method ident that the invocationSequenceData", resultList.get(0).getMethodIdent(), equalTo(invocationSequenceData.getMethodIdent()));
assertThat("The second aggregated object must have the same method ident that the secondInvocationSequenceData", resultList.get(1).getMethodIdent(),
equalTo(secondInvocationSequenceData.getMethodIdent()));
}
}