public static @Nonnull AnswerMetadata computeAnswerMetadata( @Nonnull Answer answer, @Nonnull BatfishLogger logger) { try { return AnswerMetadata.builder() .setMetrics(computeMetrics(answer, logger)) .setStatus(answer.getStatus()) .build(); } catch (Exception e) { return AnswerMetadata.forStatus(AnswerStatus.FAILURE); } }
public @Nonnull Map<String, AnswerMetadata> getAnalysisAnswersMetadata( String network, String snapshot, String referenceSnapshot, String analysis, Set<String> analysisQuestions) throws JsonProcessingException, FileNotFoundException { Set<String> questions = analysisQuestions.isEmpty() ? listAnalysisQuestions(network, analysis) : analysisQuestions; ImmutableSortedMap.Builder<String, AnswerMetadata> result = ImmutableSortedMap.naturalOrder(); for (String question : questions) { try { result.put( question, getAnswerMetadata(network, snapshot, question, referenceSnapshot, analysis)); } catch (Exception e) { _logger.errorf( "Got exception in getAnalysisAnswersMetadata: %s\n", Throwables.getStackTraceAsString(e)); result.put(question, AnswerMetadata.forStatus(AnswerStatus.FAILURE)); } } return result.build(); }
@Test public void testComputeAnswerMetadataUnsuccessfulAnswer() throws IOException { Answer testAnswer = new Answer(); testAnswer.setStatus(AnswerStatus.FAILURE); assertThat( AnswerMetadataUtil.computeAnswerMetadata(testAnswer, _logger), equalTo(AnswerMetadata.forStatus(AnswerStatus.FAILURE))); }
answerMetadata1, question2Name, AnswerMetadata.forStatus(AnswerStatus.FAILURE))));
equalTo(AnswerMetadata.forStatus(AnswerStatus.NOTFOUND)));
@Test public void testEquals() { AnswerMetadata.Builder builder = AnswerMetadata.builder().setStatus(AnswerStatus.SUCCESS); AnswerMetadata group1Elem1 = builder.build(); AnswerMetadata group1Elem2 = builder.build(); AnswerMetadata group1Elem3 = AnswerMetadata.forStatus(AnswerStatus.SUCCESS); AnswerMetadata group2Elem1 = builder.setMetrics(Metrics.builder().setNumRows(5).build()).build(); AnswerMetadata group3Elem1 = builder.setStatus(AnswerStatus.FAILURE).build(); new EqualsTester() .addEqualityGroup(group1Elem1, group1Elem2, group1Elem3) .addEqualityGroup(group2Elem1) .addEqualityGroup(group3Elem1) .testEquals(); } }
equalTo(AnswerMetadata.forStatus(AnswerStatus.NOTFOUND)));