/** * 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)); } }
/** 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)); }