@Test public void testSerialization() throws JsonParseException, JsonMappingException, IOException { Row row1 = Row.builder().put("key1", "v1").build(); Row row2 = Row.builder().put("key1", "v2").build(); TableView tableView = new TableView( OPTIONS, ImmutableList.of(new TableViewRow(0, row1), new TableViewRow(1, row2)), METADATA); TableView cycledTableView = BatfishObjectMapper.clone(tableView, TableView.class); assertThat(tableView.getOptions(), equalTo(cycledTableView.getOptions())); assertThat(tableView.getRows(), equalTo(cycledTableView.getRows())); assertThat(tableView.getTableMetadata(), equalTo(cycledTableView.getTableMetadata())); } }
new TableView( options, rowStream .collect(ImmutableList.toImmutableList()), tableMetadata); tableView.setSummary( rawTable.getSummary() != null ? rawTable.getSummary() : new AnswerSummary()); tableView.getSummary().setNumResults(filteredRows.size()); return tableView;
@JsonCreator private static @Nonnull TableView create( @JsonProperty(PROP_OPTIONS) @Nullable AnswerRowsOptions options, @JsonProperty(PROP_ROWS) @Nullable List<TableViewRow> rows, @JsonProperty(PROP_TABLE_METADATA) @Nullable TableMetadata tableMetadata) { checkArgument(options != null, "Missing %s", PROP_OPTIONS); checkArgument(tableMetadata != null, "Missing %s", PROP_TABLE_METADATA); return new TableView( options, ImmutableList.copyOf(firstNonNull(rows, ImmutableList.of())), tableMetadata); }
@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)); }
_manager.processAnswerTable2(table, optionsProject).getRows();
@Test public void testProcessAnswerRows2() throws IOException { String columnName = "issue"; int maxRows = 1; int rowOffset = 0; TableAnswerElement table = new TableAnswerElement( new TableMetadata( ImmutableList.of(new ColumnMetadata(columnName, Schema.ISSUE, "foobar")))); table.addRow(Row.of(columnName, new Issue("blah", 5, new Issue.Type("m", "n")))); Answer answer = new Answer(); answer.addAnswerElement(table); answer.setStatus(AnswerStatus.SUCCESS); String answerStr = BatfishObjectMapper.writePrettyString(answer); AnswerRowsOptions options = new AnswerRowsOptions( ImmutableSet.of(columnName), ImmutableList.of(), maxRows, rowOffset, ImmutableList.of(new ColumnSortOption(columnName, true)), false); List<Row> processedRows = ((TableView) _manager.processAnswerRows2(answerStr, options).getAnswerElements().get(0)) .getInnerRows(); assertThat(processedRows, equalTo(table.getRowsList())); }
assertThat(processedTable.getInnerRows(), equalTo(ImmutableList.of(Row.of(columnName, value))));
assertThat(processedTable.getInnerRows(), equalTo(ImmutableList.of(Row.of(columnName, value))));