@Override protected String getReplacementFor(String placeholder, ReplacementData data) { FromAndTo fromAndTo = calcFromAndToForSubscriptAndArguments(placeholder, 4, data.getArguments().size()); return formatAll(getSubArrayOfMethodParameters(data.getTestMethod(), fromAndTo), data.getArguments().subList(fromAndTo.from, fromAndTo.to)); }
@Test void testFormatAllShouldHandleSingleValueCorrectly() { // Given: final List<Object> arguments = list(12.45); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=12.45"); }
@Test void testFormatAllReplacesNonPrintableCharactersWithPredefinedPrintableCounterpartEvenIfWithText() { // Given: final List<Object> arguments = list("test\btest\uFFFF"); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=test" + STRING_NON_PRINTABLE + "test" + STRING_NON_PRINTABLE); }
@Test void testFormatAllHandlePrimitiveCharTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new char[] { 'a', '0' }); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=[a, 0]"); }
@Test void testFormatAllReplacesLineFeedsWithTheirPrintableCounterpartEvenIfWithText() { // Given: final List<Object> arguments = list("1\n2\n3"); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=1\\n2\\n3"); }
@Test void testFormatAllReplacesNonPrintableCharactersWithPredefinedPrintableCounterpart() { // Given: final List<Object> arguments = list("\u001F"); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=" + STRING_NON_PRINTABLE); }
@Test void testFormatAllReplacesCarriageReturnsAndLineFeedsWithTheirPrintableCounterpart() { // Given: final List<Object> arguments = list("A very\r\nlong text\nwith multiple\rdifferent newline\n\rvariations."); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=A very\\r\\nlong text\\nwith multiple\\rdifferent newline\\n\\rvariations."); }
@Test void testFormatAllHandleFurtherNestedArraysCorrectly() { // Given: final List<Object> arguments = list(new Object[] { 2, new char[] { 'a', 'b' }, new String[] { "a", "b" } }); // When: String result = underTest.formatAll(paramsWith(2), arguments); // Then: assertThat(result).isEqualTo("c0=[2, [a, b], [a, b]]"); }
@Test void testFormatAllHandleEnumsCorrectly() { // Given: final List<Object> arguments = list(Thread.State.RUNNABLE); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=RUNNABLE"); }
@Test void testFormatAllHandleNullSpecially() { // Given: final List<Object> arguments = list(null); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=" + STRING_NULL); }
@Test void testFormatAllHandleEmtpyStringSpecially() { // Given: final List<Object> arguments = list(""); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=" + STRING_EMPTY); }
@Test void testFormatAllReplacesCarriageReturnWithTheirPrintableCounterpart() { // Given: final List<Object> arguments = list("\r"); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=\\r"); }
@Test void testFormatAllHandleObjectArrayCorrectly() { // Given: final List<Object> arguments = list(new Object[] { 7.5, "test" }); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=[7.5, test]"); }
@Test void testFormatAllHandlePrimitiveLongTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new long[] { 111L, 222L, 333L }); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=[111, 222, 333]"); }
@Test void testFormatAllHandlePrimitiveDoubleTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new double[] { .78, 3.15E2 }); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=[0.78, 315.0]"); }
@Test void testFormatAllReplacesNullTerminatorWithTheirPrintableCounterpart() { // Given: final List<Object> arguments = list("\0"); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=\\0"); }
@Test void testFormatAllHandlePrimitiveShortTypeArrayCorrectly() { // Given: final List<Object> arguments = list(new short[] { 1024 }); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=[1024]"); }
@Test void testFormatAllHandleListsCorrectly() { // Given: final List<Object> arguments = list(list("test", 1, 1723940567289346512L), 3); // When: String result = underTest.formatAll(paramsWith(2), arguments); // Then: assertThat(result).isEqualTo("c0=[test, 1, 1723940567289346512], i1=3"); }
@Test void testFormatAllDoesNotThrowNullPointerExceptionIfParamsToStringReturningNull() { // Given: final List<Object> arguments = list(new TestToString(null)); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).isEqualTo("c0=" + STRING_NULL); }
@Test void testFormatAllHandleObjectCorrectly() { // Given: final List<Object> arguments = list(new Object()); // When: String result = underTest.formatAll(paramsWith(1), arguments); // Then: assertThat(result).matches("c0=java.lang.Object@[0-9a-f]+"); }