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 static @Nonnull AnswerMetadata forStatus(AnswerStatus status) { return new Builder().setStatus(status).build(); }
.build()) .setStatus(AnswerStatus.SUCCESS) .build())); GetAnalysisAnswerMetricsAnswer group1Elem2 = new GetAnalysisAnswerMetricsAnswer( .build()) .setStatus(AnswerStatus.SUCCESS) .build())); GetAnalysisAnswerMetricsAnswer group2Elem1 = new GetAnalysisAnswerMetricsAnswer( .build()) .setStatus(AnswerStatus.SUCCESS) .build()));
.build()) .setStatus(AnswerStatus.SUCCESS) .build()));
@Test public void testComputeAnswerMetadataInapplicable() throws IOException { String columnName = "col"; List<Integer> value = ImmutableList.of(5); Answer testAnswer = new Answer(); testAnswer.addAnswerElement( new TableAnswerElement( new TableMetadata( ImmutableList.of( new ColumnMetadata(columnName, Schema.list(Schema.INTEGER), "foobar")), new DisplayHints().getTextDesc())) .addRow(Row.of(columnName, value))); testAnswer.setStatus(AnswerStatus.SUCCESS); assertThat( AnswerMetadataUtil.computeAnswerMetadata(testAnswer, _logger), equalTo( AnswerMetadata.builder() .setMetrics(Metrics.builder().setNumRows(1).build()) .setStatus(AnswerStatus.SUCCESS) .build())); }
@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(); } }