How to use indent method of org.testingisdocumenting.webtau.http.render.DataNodeAnsiPrinter class

Best Webtau code snippet using org.testingisdocumenting.webtau.http.render.DataNodeAnsiPrinter.indent

Source:DataNodeAnsiPrinter.java Github

copy

Full Screen

...33 private static final Object[] NO_STYLE = new Object[]{};34 private final ConsoleOutput console;35 private List<Line> lines;36 private Line currentLine;37 private int indentation;38 public DataNodeAnsiPrinter(ConsoleOutput console) {39 this.console = console;40 }41 public void print(DataNode dataNode) {42 print(dataNode, -1);43 }44 public void print(DataNode dataNode, int maxNumberOfLInes) {45 lines = new ArrayList<>();46 currentLine = new Line();47 lines.add(currentLine);48 printNode(dataNode, false);49 console.outLinesWithLimit(lines, maxNumberOfLInes,50 (line) -> line.getStyleAndValues().toArray());51 }52 private void printNode(DataNode dataNode, boolean skipIndent) {53 if (dataNode.isList()) {54 printList(dataNode, skipIndent);55 } else if (dataNode.isSingleValue()) {56 if (!skipIndent) {57 printIndentation();58 }59 printSingle(dataNode);60 } else {61 printObject(dataNode, skipIndent);62 }63 }64 private void printObject(DataNode dataNode, boolean skipIndent) {65 if (dataNode.numberOfChildren() == 0) {66 printEmptyObject(skipIndent);67 } else {68 printNotEmptyObject(dataNode, skipIndent);69 }70 }71 private void printEmptyObject(boolean skipIndent) {72 if (!skipIndent) {73 printIndentation();74 }75 printDelimiter("{");76 printDelimiter("}");77 }78 private void printNotEmptyObject(DataNode dataNode, boolean skipIndent) {79 openScope("{", skipIndent);80 Collection<DataNode> children = dataNode.children();81 int idx = 0;82 for (DataNode v : children) {83 String k = v.id().getName();84 boolean isLast = idx == children.size() - 1;85 printIndentation();86 printKey(k);87 printNode(v, true);88 if (!isLast) {89 printDelimiter(",");90 println();91 }92 idx++;93 }94 closeScope("}");95 }96 private void printList(DataNode dataNode, boolean skipIndent) {97 if (dataNode.elements().isEmpty()) {98 printEmptyList(skipIndent);99 } else {100 printNonEmptyList(dataNode, skipIndent);101 }102 }103 private void printEmptyList(boolean skipIndent) {104 if (!skipIndent) {105 printIndentation();106 }107 printDelimiter("[");108 printDelimiter("]");109 }110 private void printNonEmptyList(DataNode dataNode, boolean skipIndent) {111 openScope("[", skipIndent);112 int size = dataNode.elements().size();113 int idx = 0;114 for (DataNode n : dataNode.elements()) {115 printNode(n, false);116 boolean isLast = idx == size - 1;117 if (!isLast) {118 printDelimiter(",");119 println();120 }121 idx++;122 }123 closeScope("]");124 }125 private void printSingle(DataNode dataNode) {126 TraceableValue traceableValue = dataNode.getTraceableValue();127 Object value = traceableValue.getValue();128 print(TypeUtils.isString(value) ? STRING_COLOR : NUMBER_COLOR);129 print(valueStyle(traceableValue));130 print(convertToString(traceableValue));131 }132 private String convertToString(TraceableValue traceableValue) {133 switch (traceableValue.getCheckLevel()) {134 case FuzzyFailed:135 case ExplicitFailed:136 return "**" + convertToString(traceableValue.getValue()) + "**";137 case ExplicitPassed:138 return "__" + convertToString(traceableValue.getValue()) + "__";139 case FuzzyPassed:140 return "~~" + convertToString(traceableValue.getValue()) + "~~";141 default:142 return convertToString(traceableValue.getValue());143 }144 }145 private String convertToString(Object value) {146 if (value == null) {147 return "null";148 }149 return TypeUtils.isString(value) ?150 "\"" + value + "\"" :151 value.toString();152 }153 private Object[] valueStyle(TraceableValue traceableValue) {154 switch (traceableValue.getCheckLevel()) {155 case FuzzyFailed:156 case ExplicitFailed:157 return FAIL_STYLE;158 case FuzzyPassed:159 case ExplicitPassed:160 return PASS_STYLE;161 default:162 return NO_STYLE;163 }164 }165 private void printKey(String k) {166 print(KEY_COLOR, "\"" + k + "\"", ": ");167 }168 private void printDelimiter(String d) {169 print(DELIMITER_COLOR, d);170 }171 private void openScope(String scopeChar, boolean skipIndent) {172 if (!skipIndent) {173 printIndentation();174 }175 printDelimiter(scopeChar);176 println();177 indentRight();178 }179 private void closeScope(String scopeChar) {180 println();181 indentLeft();182 printIndentation();183 printDelimiter(scopeChar);184 }185 private void printIndentation() {186 String indentation = indentation();187 if (!indentation.isEmpty()) {188 print(indentation);189 }190 }191 private void indentRight() {192 indentation++;193 }194 private void indentLeft() {195 indentation--;196 }197 private void print(Object... styleAndValues) {198 currentLine.append(styleAndValues);199 }200 private void println(Object... styleAndValues) {201 print(styleAndValues);202 currentLine = new Line();203 lines.add(currentLine);204 }205 private String indentation() {206 return indent(indentation);207 }208 private static String indent(final int nestLevel) {209 if (nestLevel == 0) {210 return "";211 }212 return StringUtils.leftPad(" ", nestLevel * 2);213 }214 private static class Line {215 private final List<Object> styleAndValues = new ArrayList<>();216 public void append(Object... styleAndValues) {217 this.styleAndValues.addAll(Arrays.asList(styleAndValues));218 }219 public List<Object> getStyleAndValues() {220 return styleAndValues;221 }222 }...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful