/** * Combined the current summary with another summary, by summing up individual fields. * * @param other The other summary to be combined with. */ public void combine(AnswerSummary other) { if (other != null) { _notes = (Strings.isNullOrEmpty(_notes)) ? other.getNotes() : _notes + "; " + other.getNotes(); _numFailed += other.getNumFailed(); _numPassed += other.getNumPassed(); _numResults += other.getNumResults(); } }
public void updateSummary() { _summary.reset(); for (JsonPathResult result : _results.values()) { if (result.getAssertionResult() != null) { if (result.getAssertionResult()) { _summary.setNumPassed(_summary.getNumPassed() + 1); } else { _summary.setNumFailed(_summary.getNumFailed() + 1); } } _summary.setNumResults(_summary.getNumResults() + result.getNumResults()); } } }
@Test public void deserializationTest() throws IOException { String summaryStr = "{\"notes\" : \"notes1\", \"numFailed\" : 21, \"numPassed\" : 23, " + "\"numResults\": 42}"; AnswerSummary summary = BatfishObjectMapper.mapper().readValue(summaryStr, AnswerSummary.class); assertThat(summary.getNotes(), equalTo("notes1")); assertThat(summary.getNumFailed(), equalTo(21)); assertThat(summary.getNumPassed(), equalTo(23)); assertThat(summary.getNumResults(), equalTo(42)); }
@Test public void serializationTest() throws IOException { AnswerSummary summary = new AnswerSummary("notes1", 21, 23, 42); // The summary should survive cloning through JSON. AnswerSummary summaryAfter = BatfishObjectMapper.clone(summary, AnswerSummary.class); assertThat(summaryAfter.getNotes(), equalTo("notes1")); assertThat(summaryAfter.getNumFailed(), equalTo(21)); assertThat(summaryAfter.getNumPassed(), equalTo(23)); assertThat(summaryAfter.getNumResults(), equalTo(42)); } }
@Test public void combineTest() { AnswerSummary summary = new AnswerSummary("notes1", 1, 2, 3); AnswerSummary summaryOther = new AnswerSummary("notes2", 4, 5, 6); summary.combine(summaryOther); assertThat(summary.getNotes(), equalTo("notes1; notes2")); assertThat(summary.getNumFailed(), equalTo(5)); assertThat(summary.getNumPassed(), equalTo(7)); assertThat(summary.getNumResults(), equalTo(9)); }
@Test public void updateSummaryTest() { JsonPathAnswerElement answerElement = new JsonPathAnswerElement(); JsonPathResult result1 = new JsonPathResult(); result1.setAssertionResult(true); result1.setNumResults(2); JsonPathResult result2 = new JsonPathResult(); result2.setAssertionResult(false); result2.setNumResults(5); JsonPathResult result3 = new JsonPathResult(); result3.setNumResults(3); answerElement.getResults().put(0, result1); answerElement.getResults().put(1, result2); answerElement.getResults().put(2, result3); answerElement.updateSummary(); AnswerSummary summary = answerElement.getSummary(); assertThat(summary.getNumFailed(), equalTo(1)); assertThat(summary.getNumPassed(), equalTo(1)); assertThat(summary.getNumResults(), equalTo(10)); } }
@Test public void testProcessAnswerTableFiltered() { String columnName = "val"; TableAnswerElement table = new TableAnswerElement( new TableMetadata( ImmutableList.of(new ColumnMetadata(columnName, Schema.STRING, "foobar")))); String whitelistedValue = "hello"; Row row1 = Row.of(columnName, whitelistedValue); Row row2 = Row.of(columnName, "goodbye"); table.addRow(row1); table.addRow(row2); AnswerRowsOptions optionsNotFiltered = new AnswerRowsOptions( ImmutableSet.of(), ImmutableList.of(), Integer.MAX_VALUE, 0, ImmutableList.of(), false); AnswerRowsOptions optionsFiltered = new AnswerRowsOptions( ImmutableSet.of(), ImmutableList.of(new ColumnFilter(columnName, whitelistedValue)), Integer.MAX_VALUE, 0, ImmutableList.of(), false); TableAnswerElement notFiltered = _manager.processAnswerTable(table, optionsNotFiltered); TableAnswerElement filtered = _manager.processAnswerTable(table, optionsFiltered); assertThat(notFiltered.getRowsList(), equalTo(ImmutableList.of(row1, row2))); assertThat(filtered.getRowsList(), equalTo(ImmutableList.of(row1))); assertThat(notFiltered.getSummary().getNumResults(), equalTo(2)); assertThat(filtered.getSummary().getNumResults(), equalTo(1)); }
@Test public void testProcessAnswerTable2Filtered() { String columnName = "val"; TableAnswerElement table = new TableAnswerElement( new TableMetadata( ImmutableList.of(new ColumnMetadata(columnName, Schema.STRING, "foobar")))); String whitelistedValue = "hello"; Row row1 = Row.of(columnName, whitelistedValue); Row row2 = Row.of(columnName, "goodbye"); table.addRow(row1); table.addRow(row2); AnswerRowsOptions optionsNotFiltered = new AnswerRowsOptions( ImmutableSet.of(), ImmutableList.of(), Integer.MAX_VALUE, 0, ImmutableList.of(), false); AnswerRowsOptions optionsFiltered = new AnswerRowsOptions( ImmutableSet.of(), ImmutableList.of(new ColumnFilter(columnName, whitelistedValue)), Integer.MAX_VALUE, 0, ImmutableList.of(), false); TableView notFiltered = _manager.processAnswerTable2(table, optionsNotFiltered); TableView filtered = _manager.processAnswerTable2(table, optionsFiltered); assertThat(notFiltered.getInnerRows(), equalTo(ImmutableList.of(row1, row2))); assertThat(filtered.getInnerRows(), equalTo(ImmutableList.of(row1))); assertThat(notFiltered.getSummary().getNumResults(), equalTo(2)); assertThat(filtered.getSummary().getNumResults(), equalTo(1)); }
assertThat(answer.getSummary().getNumResults(), equalTo(1));
/** Does computerSummary compute the correct summary? */ @Test public void testComputeSummary() { // generate an answer with two rows TableAnswerElement answer = new TableAnswerElement( new TableMetadata( ImmutableList.of(new ColumnMetadata("col", Schema.STRING, "desc")), "no desc")); answer.addRow(Row.builder().put("col", "val").build()); answer.addRow(Row.builder().put("col", "val").build()); Assertion assertion = new Assertion(AssertionType.countequals, new IntNode(1)); // wrong count AnswerSummary summary = answer.computeSummary(assertion); assertThat(summary.getNumResults(), equalTo(2)); assertThat(summary.getNumFailed(), equalTo(1)); assertThat(summary.getNumPassed(), equalTo(0)); }
assertThat(el.getSummary().getNumResults(), equalTo(1)); .answer(); assert el.getSummary() != null; assertThat(el.getSummary().getNumResults(), equalTo(0));