379 sb.setCharAt(index, ch);
380 check(sb, expected);
381 }
382
383 private void checkSetLength(StringBuilder sb, int newLength, String expected) {
384 sb.setLength(newLength);
385 check(sb, expected);
386 }
387
388 private void check(StringBuilder sb, String expected) {
389 check(sb.toString(), expected);
390 }
391
392 private void check(String str, String expected) {
393 assertTrue(str.equals(expected), String.format(
394 "Get (%s) but expect (%s), ", escapeNonASCIIs(str),
395 escapeNonASCIIs(expected)));
396 }
397
398 /*
399 * Because right now system default charset in JPRT environment is only
400 * guaranteed to support ASCII characters in log, so we escape them.
401 */
402 private String escapeNonASCIIs(String str) {
403 StringBuilder sb = new StringBuilder();
404 for (int i = 0; i < str.length(); i++) {
405 char c = str.charAt(i);
406 if (c > 0x7F) {
407 sb.append("\\u").append(Integer.toHexString((int) c));
408 } else {
409 sb.append(c);
410 }
411 }
412 return sb.toString();
413 }
414 }
|
379 sb.setCharAt(index, ch);
380 check(sb, expected);
381 }
382
383 private void checkSetLength(StringBuilder sb, int newLength, String expected) {
384 sb.setLength(newLength);
385 check(sb, expected);
386 }
387
388 private void check(StringBuilder sb, String expected) {
389 check(sb.toString(), expected);
390 }
391
392 private void check(String str, String expected) {
393 assertTrue(str.equals(expected), String.format(
394 "Get (%s) but expect (%s), ", escapeNonASCIIs(str),
395 escapeNonASCIIs(expected)));
396 }
397
398 /*
399 * Escape non-ASCII characters since not all systems support them.
400 */
401 private String escapeNonASCIIs(String str) {
402 StringBuilder sb = new StringBuilder();
403 for (int i = 0; i < str.length(); i++) {
404 char c = str.charAt(i);
405 if (c > 0x7F) {
406 sb.append("\\u").append(Integer.toHexString((int) c));
407 } else {
408 sb.append(c);
409 }
410 }
411 return sb.toString();
412 }
413 }
|