How to use report method of org.testingisdocumenting.webtau.expectation.equality.handlers.StringCompareToHandler class

Best Webtau code snippet using org.testingisdocumenting.webtau.expectation.equality.handlers.StringCompareToHandler.report

Source:StringCompareToHandler.java Github

copy

Full Screen

...67 compareNumberOfLines();68 compareEndOfLineChars();69 compareContent();70 boolean isEqual = mismatchDetails.isEmpty();71 compareToComparator.reportEqualOrNotEqual(StringCompareToHandler.this, isEqual, actualPath,72 isEqual ? matchFullMessage() : mismatchFullMessage());73 }74 private void compareContent() {75 if (!actualString.equals(expectedString)) {76 report(renderActualExpected());77 report(renderFirstLineMismatch());78 }79 }80 private String matchFullMessage() {81 return renderActualExpected();82 }83 private String mismatchFullMessage() {84 return String.join("\n", mismatchDetails);85 }86 private void compareNumberOfLines() {87 if (actualLines.length != expectedLines.length) {88 report("different number of lines" +89 ", expected: " + expectedLines.length +90 ", actual: " + actualLines.length);91 }92 }93 private void compareEndOfLineChars() {94 if (actualHasSlashR && !expectedHasSlashR) {95 report("different line endings, expected doesn't contain \\r, but actual does");96 } else if (!actualHasSlashR && expectedHasSlashR) {97 report("different line endings, expected contains \\r, but actual doesn't");98 }99 }100 private String renderActualExpected() {101 if (actualLines.length == 1 && expectedLines.length == 1) {102 int indexOfFirstMismatch = indexOfFirstMismatch(actualString, expectedString);103 int assertionModePaddingSize = assertionModePaddingSize();104 return ACTUAL_PREFIX + renderValueAndTypeWithPadding(105 assertionModePaddingSize,106 actualString) +107 additionalTypeInfo(actual, actualString) + "\n" +108 expected(compareToComparator.getAssertionMode(), renderValueAndType(expectedString) +109 additionalTypeInfo(expected, expectedString)) +110 renderCaretIfRequired(ACTUAL_PREFIX, true, indexOfFirstMismatch + assertionModePaddingSize);111 } else {112 return ACTUAL_PREFIX + renderType(actualString) + additionalTypeInfo(actual, actualString) + "\n" +113 renderMultilineString(actualString) + "\n" +114 expected(compareToComparator.getAssertionMode(), renderType(expectedString) +115 additionalTypeInfo(expected, expectedString)) +116 renderMultilineString(expectedString);117 }118 }119 // we need to pad actual string to match number of spaces from expected assertionMode rendered120 // to make caret that shows first mismatch aligned121 // actual: "hello"122 // expected: not "help"123 // ^124 private int assertionModePaddingSize() {125 int modeLength = compareToComparator.getAssertionMode().getMessage().length();126 return modeLength > 0 ? modeLength + 1 /* space */: 0;127 }128 private String renderFirstLineMismatch() {129 int minLines = Math.min(expectedLines.length, actualLines.length);130 if (minLines == 1) {131 return "";132 }133 for (int idx = 0; idx < minLines; idx++) {134 String actualLine = actualLines[idx];135 String expectedLine = expectedLines[idx];136 if (!actualLine.equals(expectedLine)) {137 return "first mismatch at line idx " + idx + ":\n" +138 ACTUAL_PREFIX + actualLine + "\n" +139 EXPECTED_PREFIX + expectedLine + "\n" +140 renderCaretIfRequired(ACTUAL_PREFIX, false,141 indexOfFirstMismatch(actualLine, expectedLine));142 }143 }144 return "";145 }146 private String additionalTypeInfo(Object original, Object converted) {147 return (original.getClass() != converted.getClass() ? "(before conversion: " + renderValueAndType(original) + ")" : "");148 }149 private String renderMultilineString(String text) {150 return longestLineUnderscore + "\n" + text + "\n" + longestLineUnderscore + "\n";151 }152 private void report(String message) {153 mismatchDetails.add(message);154 }155 private String renderCaretIfRequired(String prefixAdjustment, boolean adjustForQuote, int idx) {156 return idx != -1 ? String.format("%" + (idx + (adjustForQuote ? 1 : 0) + 1 /*for 0-based index*/ +157 prefixAdjustment.length()) + "s", "^") : "";158 }159 private String createLongestLineUnderscore() {160 int maxLength = 0;161 for (String actualLine : actualLines) {162 maxLength = Math.max(maxLength, actualLine.length());163 }164 for (String expectedLine : expectedLines) {165 maxLength = Math.max(maxLength, expectedLine.length());166 }...

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