0

test: StringFormatter

This commit is contained in:
2021-10-07 01:45:30 +03:00
parent ba58bc463d
commit 41fe798757
2 changed files with 97 additions and 2 deletions

View File

@@ -13,7 +13,7 @@ public final class StringFormatter {
private static final char ESCAPE_CHAR = '\\';
public static String arrayFormat(String messagePattern, Object[] argArray) {
if (messagePattern == null) {
if (messagePattern == null || messagePattern.equals(EMPTY)) {
return EMPTY;
} else if (argArray == null) {
return messagePattern;
@@ -30,7 +30,7 @@ public final class StringFormatter {
if (k == 0) { // this is a simple string
return messagePattern;
} else { // add the tail string which contains no variables and return
// the result.
// the result.
sb.append(messagePattern, k, messagePattern.length());
return sb.toString();
}

View File

@@ -0,0 +1,95 @@
package ghast.logger;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class StringFormatterTest {
@Test
void emptyPattern() {
String actual = StringFormatter.arrayFormat(null, null);
assertEquals("", actual);
actual = StringFormatter.arrayFormat("", null);
assertEquals("", actual);
}
@Test
void nullArgArray() {
String pattern = "some pattern";
String actual = StringFormatter.arrayFormat(pattern, null);
assertEquals(pattern, actual);
pattern = "some pattern {}";
actual = StringFormatter.arrayFormat(pattern, null);
assertEquals(pattern, actual);
}
@Test
void dummyPattern() {
String actual = StringFormatter.arrayFormat("dummy pattern", new Object[]{"argument"});
assertEquals("dummy pattern", actual);
}
@Test
void escapePattern() {
String actual = StringFormatter.arrayFormat("Arg1: \\{}", new Object[]{"item1"});
assertEquals("Arg1: {}", actual);
actual = StringFormatter.arrayFormat("Arg1: {}, \\{}", new Object[]{"item1"});
assertEquals("Arg1: item1, \\{}", actual);
}
@Test
void simpleArg() {
String actual;
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{"item1"});
assertEquals("Arg1: item1", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{11});
assertEquals("Arg1: 11", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{11.5f});
assertEquals("Arg1: 11.5", actual);
}
@Test
void nullArg() {
String actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{null});
assertEquals("Arg1: null", actual);
}
@Test
void arrayArg() {
String actual;
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new boolean[]{false, true}});
assertEquals("Arg1: [false, true]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new byte[]{0b00, 0b01}});
assertEquals("Arg1: [0, 1]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new char[]{'c', 'h'}});
assertEquals("Arg1: [c, h]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new short[]{11, 12}});
assertEquals("Arg1: [11, 12]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new int[]{11, 12}});
assertEquals("Arg1: [11, 12]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new long[]{11L, 12L}});
assertEquals("Arg1: [11, 12]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new float[]{11.2f, 12.3f}});
assertEquals("Arg1: [11.2, 12.3]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new double[]{11.2d, 12.3d}});
assertEquals("Arg1: [11.2, 12.3]", actual);
actual = StringFormatter.arrayFormat("Arg1: {}", new Object[]{new String[]{"str-arr-1", "str-arr-2"}});
assertEquals("Arg1: [str-arr-1, str-arr-2]", actual);
}
}