Best Webtau code snippet using org.testingisdocumenting.webtau.reporter.ConsoleStepReporter.executeIfWithinVerboseLevel
Source:ConsoleStepReporter.java
...30 this.verboseLevelSupplier = verboseLevelSupplier;31 }32 @Override33 public void onStepStart(WebTauStep step) {34 executeIfWithinVerboseLevel(step, () -> printStepStart(step));35 }36 @Override37 public void onStepSuccess(WebTauStep step) {38 executeIfWithinVerboseLevel(step, () -> printStepSuccess(step));39 }40 @Override41 public void onStepFailure(WebTauStep step) {42 executeIfWithinVerboseLevel(step, () -> printStepFailure(step));43 }44 @Override45 public void onStepRepeatStart(WebTauStep step, int current, int total) {46 executeIfWithinVerboseLevel(step, () -> printStepRepeatStart(step, current, total));47 }48 @Override49 public void onStepRepeatSuccess(WebTauStep step, int current, int total) {50 executeIfWithinVerboseLevel(step, () -> printStepRepeatSuccess(step, current, total));51 }52 @Override53 public void onStepRepeatFailure(WebTauStep step, int current, int total) {54 executeIfWithinVerboseLevel(step, () -> printStepRepeatFailure(step, current, total));55 }56 private void printStepStart(WebTauStep step) {57 ConsoleOutputs.out(58 Stream.concat(59 Stream.concat(60 stepStartBeginningStream(step),61 personaStream(step)),62 toAnsiConverter.convert(step.getInProgressMessage()).stream()63 ).toArray());64 printStepInput(step);65 }66 private void printStepSuccess(WebTauStep step) {67 TokenizedMessage completionMessage = step.getCompletionMessage();68 TokenizedMessage completionMessageToUse = isLastTokenMatcher(completionMessage) ?69 completionMessage.subMessage(0, completionMessage.getNumberOfTokens() - 1)70 .add(reAlignText(step.getNumberOfParents() + 2, completionMessage.getLastToken())) :71 completionMessage;72 printStepOutput(step);73 ConsoleOutputs.out(Stream.concat(Stream.concat(Stream.concat(stepSuccessBeginningStream(step), personaStream(step)),74 toAnsiConverter.convert(completionMessageToUse).stream()),75 timeTakenTokenStream(step)).toArray());76 }77 private void printStepFailure(WebTauStep step) {78 TokenizedMessage completionMessageToUse = messageTokensForFailedStep(step);79 printStepOutput(step);80 ConsoleOutputs.out(Stream.concat(Stream.concat(Stream.concat(stepFailureBeginningStream(step), personaStream(step)),81 toAnsiConverter.convert(completionMessageToUse).stream()),82 timeTakenTokenStream(step)).toArray());83 }84 private void printStepRepeatStart(WebTauStep step, int currentIdx, int total) {85 ConsoleOutputs.out(Stream.concat(stepStartBeginningStream(step),86 stepCurrentIdxOfTotalStream(currentIdx, total)).toArray());87 }88 private void printStepRepeatSuccess(WebTauStep step, int currentIdx, int total) {89 ConsoleOutputs.out(Stream.concat(stepSuccessBeginningStream(step),90 Stream.concat(91 stepCurrentIdxOfTotalStream(currentIdx, total),92 timeTakenTokenStream(step))).toArray());93 }94 private void printStepRepeatFailure(WebTauStep step, int currentIdx, int total) {95 printStepFailure(step);96 }97 private Stream<Object> stepStartBeginningStream(WebTauStep step) {98 return Stream.of(createIndentation(step.getNumberOfParents()), Color.YELLOW, "> ");99 }100 private Stream<Object> stepSuccessBeginningStream(WebTauStep step) {101 return Stream.of(createIndentation(step.getNumberOfParents()), Color.GREEN, ". ");102 }103 private Stream<Object> stepFailureBeginningStream(WebTauStep step) {104 return Stream.of(createIndentation(step.getNumberOfParents()), Color.RED, "X ");105 }106 private Stream<Object> stepCurrentIdxOfTotalStream(int currentIdx, int total) {107 return Stream.of(Color.BLUE, currentIdx + 1, Color.YELLOW, "/", Color.BLUE, total);108 }109 private Stream<Object> timeTakenTokenStream(WebTauStep step) {110 return Stream.of(Color.YELLOW, " (", Color.GREEN, renderTimeTaken(step), Color.YELLOW, ')');111 }112 private String renderTimeTaken(WebTauStep step) {113 return TimeUtils.renderMillisHumanReadable(step.getElapsedTime());114 }115 private void printStepInput(WebTauStep step) {116 if (skipRenderRequestResponse()) {117 return;118 }119 step.getInput().prettyPrint(createIndentedConsoleOutput(step));120 }121 private void printStepOutput(WebTauStep step) {122 if (skipRenderRequestResponse()) {123 return;124 }125 step.getOutput().prettyPrint(createIndentedConsoleOutput(step));126 }127 private IndentedConsoleOutput createIndentedConsoleOutput(WebTauStep step) {128 return new IndentedConsoleOutput(ConsoleOutputs.asCombinedConsoleOutput(),129 numberOfSpacedForIndentLevel(step.getNumberOfParents() + 1));130 }131 private boolean skipRenderRequestResponse() {132 return verboseLevelSupplier.get() <= WebTauStep.getCurrentStep().getNumberOfParents() + 1;133 }134 private TokenizedMessage messageTokensForFailedStep(WebTauStep step) {135 TokenizedMessage completionMessage = step.getCompletionMessage();136 int numberOfParents = step.getNumberOfParents();137 boolean isLastTokenError = isLastTokenError(completionMessage);138 if (!isLastTokenError) {139 return completionMessage;140 }141 if (step.hasFailedChildrenSteps() && !skipRenderRequestResponse()) {142 // we don't render children errors one more time in case this step has failed children steps143 // last two tokens of a message are delimiter and error tokens144 // so we remove them145 return completionMessage.subMessage(0, completionMessage.getNumberOfTokens() - 2);146 }147 return completionMessage.subMessage(0, completionMessage.getNumberOfTokens() - 1)148 .add(reAlignText(numberOfParents + 2, completionMessage.getLastToken()));149 }150 private Stream<Object> personaStream(WebTauStep step) {151 if (step.getPersonaId().isEmpty()) {152 return Stream.empty();153 }154 return Stream.of(Color.YELLOW, step.getPersonaId(), " ", Color.RESET);155 }156 private MessageToken reAlignText(int indentLevel, MessageToken token) {157 if (token.getValue() == null) {158 return token;159 }160 String text = token.getValue().toString();161 return new MessageToken(token.getType(),162 StringUtils.indentAllLinesButFirst(createIndentation(indentLevel), text));163 }164 private boolean isLastTokenMatcher(TokenizedMessage completionMessage) {165 return completionMessage.getLastToken().getType().equals(166 IntegrationTestsMessageBuilder.TokenTypes.MATCHER.getType());167 }168 private boolean isLastTokenError(TokenizedMessage completionMessage) {169 return completionMessage.getLastToken().getType().equals(170 IntegrationTestsMessageBuilder.TokenTypes.ERROR.getType());171 }172 private String createIndentation(int indentLevel) {173 return StringUtils.createIndentation(numberOfSpacedForIndentLevel(indentLevel));174 }175 private int numberOfSpacedForIndentLevel(int indentLevel) {176 return indentLevel * 2;177 }178 private void executeIfWithinVerboseLevel(WebTauStep step, Runnable code) {179 int currentLevel = step.getNumberOfParents() + 1;180 if (currentLevel <= verboseLevelSupplier.get()) {181 code.run();182 }183 }184}...
executeIfWithinVerboseLevel
Using AI Code Generation
1executeIfWithinVerboseLevel(1, () -> {2 console.out.println("The verbose level is greater than or equal to 1");3});4executeIfWithinVerboseLevel(2, () -> {5 console.out.println("The verbose level is greater than or equal to 2");6});7executeIfWithinVerboseLevel(3, () -> {8 console.out.println("The verbose level is greater than or equal to 3");9});10executeIfWithinVerboseLevel(4, () -> {11 console.out.println("The verbose level is greater than or equal to 4");12});13executeIfWithinVerboseLevel(5, () -> {14 console.out.println("The verbose level is greater than or equal to 5");15});16executeIfWithinVerboseLevel(6, () -> {17 console.out.println("The verbose level is greater than or equal to 6");18});19executeIfWithinVerboseLevel(7, () -> {
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!