public void append(Answer answer) { if (answer._question != null) { _question = answer._question; } _answerElements.addAll(answer._answerElements); _status = answer._status; _summary.combine(answer.getSummary()); for (AnswerElement answerElement : answer._answerElements) { if (answerElement instanceof BatfishStackTrace) { BatfishException e = ((BatfishStackTrace) answerElement).getException(); throw new QuestionException("Exception answering question", e, this); } } }
private String getTestComparisonString(Answer answer, TestComparisonMode comparisonMode) throws JsonProcessingException { switch (comparisonMode) { case COMPAREANSWER: // Use an array rather than a list to serialize the answer elements; this preserves // the type information. See https://github.com/FasterXML/jackson-databind/issues/336, // though this is a different workaround. AnswerElement[] elements = answer.getAnswerElements().toArray(new AnswerElement[0]); return BatfishObjectMapper.writePrettyString(elements); case COMPAREALL: return BatfishObjectMapper.writePrettyString(answer); case COMPAREFAILURES: return BatfishObjectMapper.writePrettyString(answer.getSummary().getNumFailed()); case COMPARESUMMARY: return BatfishObjectMapper.writePrettyString(answer.getSummary()); default: throw new BatfishException("Unhandled TestComparisonMode: " + comparisonMode); } }
containerName, getTaskId(), currentAnswer.getSummary().getNumFailed() > 0 ? "failed" : "passed", currentAnswer.getQuestion().getDataPlane(), BatfishObjectMapper.writeString( summary.combine(currentAnswer.getSummary()); });