/** * Prepare Result from JSON. Type of result is expected to there in the JSON as 'contentType' * which should be one of {@link ResultData#TYPE_TABULAR}, {@link ResultData#TYPE_COMPOSITE}, * {@link ResultData#TYPE_INFO}, {@link ResultData#TYPE_ERROR}. * * @param gfJsonObject GemFire JSON Object to use to prepare Result */ public static CommandResult fromJson(GfJsonObject gfJsonObject) { return fromJson(gfJsonObject.toString()); }
@Test public void errorCodeCorrectlyUpdated() { String json = "{\"contentType\":\"table\",\"data\":{\"content\":{\"Member\":[\"server\"],\"Status\":[\"ERROR: Bad.\"]},\"footer\":\"\",\"header\":\"\",\"type-class\":\"org.apache.geode.management.internal.cli.CommandResponse.Data\"},\"debugInfo\":\"\",\"failedToPersist\":false,\"fileToDownload\":null,\"page\":\"1/1\",\"sender\":\"server\",\"status\":-1,\"tokenAccessor\":\"__NULL__\",\"type-class\":\"org.apache.geode.management.internal.cli.CommandResponse\",\"version\":\"1.3.0-SNAPSHOT\",\"when\":\"10/17/17 8:17 AM\"}"; CommandResult result = ResultBuilder.fromJson(json); assertThat(result.getStatus().getCode()).isEqualTo(-1); } }
@Test public void legacyUserErrorComparison() { // Create the legacy results Result legacyResult = ResultBuilder.createUserErrorResult("This is an error message"); String legacyString = CommandResponseBuilder.createCommandResponseJson("server1", (CommandResult) legacyResult); CommandResult legacyErrorResult = ResultBuilder.fromJson(legacyString); // Create the new model results ResultModel newCrm = ResultModel.createError("This is an error message"); String newModelString = CommandResponseBuilder.createCommandResponseJson("server1", newCrm); CommandResult newErrorModelResult = ResultBuilder.fromJson(newModelString); assertThat(legacyErrorResult.getMessageFromContent()) .isEqualTo(newErrorModelResult.getErrorMessage()); assertThat(readCommandOutput(newErrorModelResult)) .isEqualTo(readCommandOutput(legacyErrorResult)); }
@Test public void legacyErrorComparison() { // Create the legacy results ErrorResultData legacyError = ResultBuilder.createErrorResultData(); legacyError.addLine("This is a bad line"); legacyError.addLine("This is another bad line"); Result legacyResult = ResultBuilder.buildResult(legacyError); String legacyString = CommandResponseBuilder.createCommandResponseJson("server1", (CommandResult) legacyResult); CommandResult legacyErrorResult = ResultBuilder.fromJson(legacyString); // Create the new model results ResultModel newCrm = ResultModel.createError("This is a bad line"); newCrm.getInfoSections().get(0).addLine("This is another bad line"); String newModelString = CommandResponseBuilder.createCommandResponseJson("server1", newCrm); CommandResult newErrorModelResult = ResultBuilder.fromJson(newModelString); assertThat(legacyErrorResult.getMessageFromContent()) .isEqualTo(newErrorModelResult.getErrorMessage()); assertThat(readCommandOutput(newErrorModelResult)) .isEqualTo(readCommandOutput(legacyErrorResult)); }
this.logWrapper.info(debugInfo); commandResult = ResultBuilder.fromJson((String) response);
@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)); }