use of org.apache.phoenix.pherf.result.impl.XMLResultHandler in project phoenix by apache.
the class ResultTest method testResult.
@Test
public void testResult() throws Exception {
String filename = "testresult";
ResultHandler xmlResultHandler = new XMLResultHandler();
xmlResultHandler.setResultFileDetails(ResultFileDetails.XML);
xmlResultHandler.setResultFileName(filename);
ResultManager resultManager = new ResultManager(filename, Arrays.asList(xmlResultHandler));
assertTrue("Default Handlers were not initialized.", resultManager.getResultHandlers().size() > 0);
// write result to file
DataModelResult dataModelResult = setUpDataModelResult();
resultManager.write(dataModelResult);
// Put some stuff in a combined file
List<DataModelResult> modelResults = new ArrayList<>();
modelResults.add(dataModelResult);
modelResults.add(dataModelResult);
resultManager.write(modelResults);
resultManager.flush();
// read result from file
List<Result> resultList = xmlResultHandler.read();
ResultValue<DataModelResult> resultValue = resultList.get(0).getResultValues().get(0);
DataModelResult dataModelResultFromFile = resultValue.getResultValue();
ScenarioResult scenarioResultFromFile = dataModelResultFromFile.getScenarioResult().get(0);
QuerySetResult querySetResultFromFile = scenarioResultFromFile.getQuerySetResult().get(0);
QueryResult queryResultFromFile = querySetResultFromFile.getQueryResults().get(0);
ThreadTime ttFromFile = queryResultFromFile.getThreadTimes().get(0);
// thread level verification
assertEquals(10, (int) ttFromFile.getMinTimeInMs().getElapsedDurationInMs());
assertEquals(30, (int) ttFromFile.getMaxTimeInMs().getElapsedDurationInMs());
assertEquals(20, (int) ttFromFile.getAvgTimeInMs());
// 3rd runtime has the earliest start time, therefore that's what's expected.
QueryResult qr = dataModelResult.getScenarioResult().get(0).getQuerySetResult().get(0).getQueryResults().get(0);
List<RunTime> runTimes = qr.getThreadTimes().get(0).getRunTimesInMs();
assertEquals(runTimes.get(2).getStartTime(), ttFromFile.getStartTime());
assertEquals(runTimes.get(0).getResultRowCount(), ttFromFile.getRunTimesInMs().get(0).getResultRowCount());
assertEquals(runTimes.get(1).getResultRowCount(), ttFromFile.getRunTimesInMs().get(1).getResultRowCount());
assertEquals(runTimes.get(2).getResultRowCount(), ttFromFile.getRunTimesInMs().get(2).getResultRowCount());
// query result level verification
assertEquals(10, queryResultFromFile.getAvgMinRunTimeInMs());
assertEquals(30, queryResultFromFile.getAvgMaxRunTimeInMs());
assertEquals(20, queryResultFromFile.getAvgRunTimeInMs());
}
Aggregations