public CommandResultAssert tableHasRowCount(String anyColumnHeader, int rowSize) { assertThat(actual.getCommandResult().getTableColumnValues(anyColumnHeader).size()) .isEqualTo(rowSize); return this; }
/** * Verifies that the gfsh output contains a table that has a column with the specified header and * the specified values in the specified order. * * For example, given the following gfsh output: * * <pre> * Index Name | Region Path | Server Name | Indexed Fields | * ---------- | ----------- | ----------- | ------------------------ | * index1 | /region1 | server-0 | [field1, field3, field2] | * index2 | /region2 | server-0 | [field1, field3, field2] | * </pre> * * We might assert that: * * <pre> * <code> tableHasColumnWithExactValuesInExactOrder("Region Path", "/region1", "/region2"); * </code> * </pre> */ public CommandResultAssert tableHasColumnWithExactValuesInExactOrder(String header, String... expectedValues) { List<String> actualValues = actual.getCommandResult().getTableColumnValues(header); assertThat(actualValues).containsExactly(expectedValues); return this; }
/** * Verifies that each of the actual values in the column with the given header contains at least * one of the expectedValues. */ public CommandResultAssert tableHasColumnOnlyWithValues(String header, String... expectedValues) { List<String> actualValues = actual.getCommandResult().getTableColumnValues(header); assertThat(actualValues).containsOnly(expectedValues); return this; }
/** * Verifies that each of the actual values in the column with the given header contains at least * one of the expectedValues. */ public CommandResultAssert tableHasColumnWithValuesContaining(String header, String... expectedValues) { List<String> actualValues = actual.getCommandResult().getTableColumnValues(header); for (Object actualValue : actualValues) { String actualValueString = (String) actualValue; boolean actualValueContainsAnExpectedValue = Arrays.stream(expectedValues).anyMatch(actualValueString::contains); if (!actualValueContainsAnExpectedValue) { failWithMessage( "Expecting: " + Arrays.toString(expectedValues) + ", but found: " + actualValue); } } return this; }
int numberOfRows = -1; for (String header : headers) { List<String> columnValues = actual.getCommandResult().getTableColumnValues(header); if (numberOfRows > 0) { assertThat(columnValues.size()).isEqualTo(numberOfRows);
/** * Verifies that the gfsh output contains a table that has a column with the specified header and * the specified values in any order. * * For example, given the following gfsh output: * * <pre> * Index Name | Region Path | Server Name | Indexed Fields | * ---------- | ----------- | ----------- | ------------------------ | * index1 | /region1 | server-0 | [field1, field3, field2] | * index2 | /region2 | server-0 | [field1, field3, field2] | * * </pre> * * We might assert that: * * <pre> * <code> tableHasColumnWithExactValuesInAnyOrder("Region Path", "/region2", "/region1"); </code> * </pre> */ public CommandResultAssert tableHasColumnWithExactValuesInAnyOrder(String header, String... expectedValues) { List<String> actualValues = actual.getCommandResult().getTableColumnValues(header); assertThat(actualValues).containsExactlyInAnyOrder(expectedValues); return this; }
@Test public void legacyTableComparison() { // Create the legacy results TabularResultData legacyTable = ResultBuilder.createTabularResultData(); legacyTable.setHeader("Heads"); legacyTable.accumulate("Name", "server1"); legacyTable.accumulate("Name", "server2"); legacyTable.accumulate("Id", "member name for server1"); legacyTable.accumulate("Id", "member name for server2"); legacyTable.setFooter("Tails"); Result legacyResult = ResultBuilder.buildResult(legacyTable); String legacyString = CommandResponseBuilder.createCommandResponseJson("server1", (CommandResult) legacyResult); CommandResult clientLegacyResult = ResultBuilder.fromJson(legacyString); // Create the new model results ResultModel newCrm = new ResultModel(); TabularResultModel modelTable = newCrm.addTable("0"); modelTable.setHeader("Heads"); modelTable.accumulate("Name", "server1"); modelTable.accumulate("Name", "server2"); modelTable.accumulate("Id", "member name for server1"); modelTable.accumulate("Id", "member name for server2"); modelTable.setFooter("Tails"); String newModelString = CommandResponseBuilder.createCommandResponseJson("server1", newCrm); CommandResult clientNewModelResult = ResultBuilder.fromJson(newModelString); assertThat(clientNewModelResult.getTableColumnValues("0", "Name")) .isEqualTo(clientLegacyResult.getTableColumnValues("Name")); assertThat(readCommandOutput(clientNewModelResult)) .isEqualTo(readCommandOutput(clientLegacyResult)); }