@Override protected String getReplacementFor(String placeholder, ReplacementData data) { FromAndTo fromAndTo = calcFromAndToForSubscriptAndArguments(placeholder, 3, data.getArguments().size()); return formatAll(data.getArguments().subList(fromAndTo.from, fromAndTo.to)); }
@Test public void testFormatAllHandlePrimitiveLongTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new long[] { 111L, 222L, 333L }); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[111, 222, 333]"); }
@Test public void testFormatAllHandleFurtherNestedArraysCorrectly() { // Given: final List<Object> arguments = list(new Object[] { 2, new char[] { 'a', 'b' }, new String[] { "a", "b" } }); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[2, [a, b], [a, b]]"); }
@Test public void testFormatAllShouldHandleSingleValueCorrectly() { // Given: final List<Object> arguments = list(12.45); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("12.45"); }
@Test public void testFormatAllReplacesCarriageReturnWithTheirPrintableCounterpart() { // Given: final List<Object> arguments = list("\r"); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("\\r"); }
@Test public void testFormatAllReplacesCarriageReturnsAndLineFeedsWithTheirPrintableCounterpart() { // Given: final List<Object> arguments = list("A very\r\nlong text\nwith multiple\rdifferent newline\n\rvariations."); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("A very\\r\\nlong text\\nwith multiple\\rdifferent newline\\n\\rvariations."); }
@Test public void testFormatAllHandlePrimitiveFloatTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new float[] { 0.3f, 0.9f, 0.81f, 0.6561f }); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[0.3, 0.9, 0.81, 0.6561]"); }
@Test public void testFormatAllHandleEnumsCorrectly() { // Given: final List<Object> arguments = list(Thread.State.RUNNABLE); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("RUNNABLE"); }
@Test public void testFormatAllShouldReturnAllThreeValuesCorrectly() { // Given: final List<Object> arguments = list("test", 1, 2L); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("test, 1, 2"); }
@Test public void testFormatAllReplacesCarriageReturnsWithTheirPrintableCounterpartEvenIfWithText() { // Given: final List<Object> arguments = list("test\rtest\r"); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("test\\rtest\\r"); }
@Test public void testFormatAllReplacesNonPrintableCharactersWithPredefinedPrintableCounterpart() { // Given: final List<Object> arguments = list("\u001F"); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo(STRING_NON_PRINTABLE); }
@Test public void testFormatAllReplacesNonPrintableCharactersWithPredefinedPrintableCounterpartEvenIfWithText() { // Given: final List<Object> arguments = list("test\btest\uFFFF"); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("test" + STRING_NON_PRINTABLE + "test" + STRING_NON_PRINTABLE); }
@Test public void testFormatAllHandlePrimitiveByteTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new byte[] { 12, 24 }); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[12, 24]"); }
@Test public void testFormatAllReplacesLineFeedsWithTheirPrintableCounterpartEvenIfWithText() { // Given: final List<Object> arguments = list("1\n2\n3"); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("1\\n2\\n3"); }
@Test public void testFormatAllHandlePrimitiveShortTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new short[] { 1024 }); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[1024]"); }
@Test public void testFormatAllHandlePrimitiveIntTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new int[] { 11, 2 }); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[11, 2]"); }
@Test public void testFormatAllHandlePrimitiveDoubleTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new double[] { .78, 3.15E2 }); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[0.78, 315.0]"); }
@Test public void testFormatAllReplacesLineFeedWithTheirPrintableCounterpart() { // Given: final List<Object> arguments = list("\n"); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("\\n"); }
@Test public void testFormatAllHandleObjectCorrectly() { // Given: final List<Object> arguments = list(new Object()); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).matches("java.lang.Object@[0-9a-f]+"); }
@Test public void testFormatAllHandleListsCorrectly() { // Given: final List<Object> arguments = list(list("test", 1, 1723940567289346512L), 3); // When: String result = underTest.formatAll(arguments); // Then: assertThat(result).isEqualTo("[test, 1, 1723940567289346512], 3"); }