diff --git a/utbot-sample/src/main/java/org/utbot/examples/unsafe/UnsafeWithField.java b/utbot-sample/src/main/java/org/utbot/examples/unsafe/UnsafeWithField.java index bac70b2dcc..83c3bf3df9 100644 --- a/utbot-sample/src/main/java/org/utbot/examples/unsafe/UnsafeWithField.java +++ b/utbot-sample/src/main/java/org/utbot/examples/unsafe/UnsafeWithField.java @@ -5,7 +5,7 @@ public class UnsafeWithField { Field field; - Field setField(Field f) { + public Field setField(Field f) { field = f; return Field.INTEGER; } diff --git a/utbot-summary-tests/src/test/kotlin/examples/enums/ComplexEnumExampleTest.kt b/utbot-summary-tests/src/test/kotlin/examples/enums/ComplexEnumExampleTest.kt new file mode 100644 index 0000000000..0c879dd7ee --- /dev/null +++ b/utbot-summary-tests/src/test/kotlin/examples/enums/ComplexEnumExampleTest.kt @@ -0,0 +1,88 @@ +package examples.enums + +import examples.CustomJavaDocTagsEnabler +import examples.SummaryTestCaseGeneratorTest +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.extension.ExtendWith +import org.utbot.examples.enums.ComplexEnumExamples +import org.utbot.framework.plugin.api.MockStrategyApi +import org.utbot.tests.infrastructure.DoNotCalculate + +@ExtendWith(CustomJavaDocTagsEnabler::class) +class ComplexEnumExampleTest : SummaryTestCaseGeneratorTest( + ComplexEnumExamples::class +) { + @Test + fun testUnsafeWithField() { + val summary1 = "@utbot.classUnderTest {@link ComplexEnumExamples}\n" + + "@utbot.methodUnderTest {@link org.utbot.examples.enums.ComplexEnumExamples#countEqualColors(org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color)}\n" + + "@utbot.executesCondition {@code (b == a): False}\n" + + "@utbot.executesCondition {@code (c == a): False}\n" + + "@utbot.executesCondition {@code (a == b): False}\n" + + "@utbot.executesCondition {@code (c == b): False}\n" + + "@utbot.executesCondition {@code (equalToA > equalToB): False}\n" + + "@utbot.returnsFrom {@code return equalToB;}" + val summary2 = "@utbot.classUnderTest {@link ComplexEnumExamples}\n" + + "@utbot.methodUnderTest {@link org.utbot.examples.enums.ComplexEnumExamples#countEqualColors(org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color)}\n" + + "@utbot.executesCondition {@code (b == a): False}\n" + + "@utbot.executesCondition {@code (c == a): True}\n" + + "@utbot.executesCondition {@code (a == b): False}\n" + + "@utbot.executesCondition {@code (c == b): False}\n" + + "@utbot.executesCondition {@code (equalToA > equalToB): True}\n" + + "@utbot.returnsFrom {@code return equalToA;}\n" + val summary3 = "@utbot.classUnderTest {@link ComplexEnumExamples}\n" + + "@utbot.methodUnderTest {@link org.utbot.examples.enums.ComplexEnumExamples#countEqualColors(org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color)}\n" + + "@utbot.executesCondition {@code (b == a): False}\n" + + "@utbot.executesCondition {@code (c == a): False}\n" + + "@utbot.executesCondition {@code (a == b): False}\n" + + "@utbot.executesCondition {@code (c == b): True}\n" + + "@utbot.executesCondition {@code (equalToA > equalToB): False}\n" + + "@utbot.returnsFrom {@code return equalToB;}\n" + val summary4 = "@utbot.classUnderTest {@link ComplexEnumExamples}\n" + + "@utbot.methodUnderTest {@link org.utbot.examples.enums.ComplexEnumExamples#countEqualColors(org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color,org.utbot.examples.enums.ComplexEnumExamples.Color)}\n" + + "@utbot.executesCondition {@code (b == a): True}\n" + + "@utbot.executesCondition {@code (c == a): True}\n" + + "@utbot.executesCondition {@code (a == b): True}\n" + + "@utbot.executesCondition {@code (c == b): True}\n" + + "@utbot.executesCondition {@code (equalToA > equalToB): False}\n" + + "@utbot.returnsFrom {@code return equalToB;}" + + val methodName1 = "testCountEqualColors_EqualToALessOrEqualEqualToB" + val methodName2 = "testCountEqualColors_EqualToAGreaterThanEqualToB" + val methodName3 = "testCountEqualColors_EqualToALessOrEqualEqualToB_1" + val methodName4 = "testCountEqualColors_AEqualsB" + + val displayName1 = "b == a : False -> return equalToB" + val displayName2 = "equalToA > equalToB : True -> return equalToA" + val displayName3 = "b == a : False -> return equalToB" + val displayName4 = "b == a : True -> return equalToB" + + val summaryKeys = listOf( + summary1, + summary2, + summary3, + summary4 + ) + + val displayNames = listOf( + displayName1, + displayName2, + displayName3, + displayName4 + ) + + val methodNames = listOf( + methodName1, + methodName2, + methodName3, + methodName4 + ) + + + val method = ComplexEnumExamples::countEqualColors + val mockStrategy = MockStrategyApi.NO_MOCKS + val coverage = DoNotCalculate + + summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames) + } +} \ No newline at end of file diff --git a/utbot-summary-tests/src/test/kotlin/examples/unsafe/UnsafeWithFieldTest.kt b/utbot-summary-tests/src/test/kotlin/examples/unsafe/UnsafeWithFieldTest.kt new file mode 100644 index 0000000000..b085657a9a --- /dev/null +++ b/utbot-summary-tests/src/test/kotlin/examples/unsafe/UnsafeWithFieldTest.kt @@ -0,0 +1,43 @@ +package examples.unsafe + +import examples.CustomJavaDocTagsEnabler +import examples.SummaryTestCaseGeneratorTest +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.extension.ExtendWith +import org.utbot.examples.unsafe.UnsafeWithField +import org.utbot.framework.plugin.api.MockStrategyApi +import org.utbot.tests.infrastructure.DoNotCalculate + +@ExtendWith(CustomJavaDocTagsEnabler::class) +class UnsafeWithFieldTest : SummaryTestCaseGeneratorTest( + UnsafeWithField::class +) { + @Test + fun testUnsafeWithField() { + val summary1 = "@utbot.classUnderTest {@link UnsafeWithField}\n" + + "@utbot.methodUnderTest {@link org.utbot.examples.unsafe.UnsafeWithField#setField(java.text.NumberFormat.Field)}\n" + + "@utbot.returnsFrom {@code return Field.INTEGER;}" + + val methodName1 = "testSetField_ReturnFieldINTEGER" + + val displayName1 = "-> return Field.INTEGER" + + val summaryKeys = listOf( + summary1 + ) + + val displayNames = listOf( + displayName1 + ) + + val methodNames = listOf( + methodName1 + ) + + val method = UnsafeWithField::setField + val mockStrategy = MockStrategyApi.NO_MOCKS + val coverage = DoNotCalculate + + summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames) + } +} \ No newline at end of file diff --git a/utbot-summary/src/main/kotlin/org/utbot/summary/comment/customtags/CustomTagsUtil.kt b/utbot-summary/src/main/kotlin/org/utbot/summary/comment/customtags/CustomTagsUtil.kt index 46d7677d8a..cd64311a36 100644 --- a/utbot-summary/src/main/kotlin/org/utbot/summary/comment/customtags/CustomTagsUtil.kt +++ b/utbot-summary/src/main/kotlin/org/utbot/summary/comment/customtags/CustomTagsUtil.kt @@ -49,12 +49,14 @@ private fun formMethodReferenceForJavaDoc( methodParametersAsString: String, isPrivate: Boolean ): String { + // to avoid $ in names for static inner classes val prettyClassName: String = className.replace(JAVA_CLASS_DELIMITER, JAVA_DOC_CLASS_DELIMITER) + val validMethodParameters = methodParametersAsString.replace(JAVA_CLASS_DELIMITER, JAVA_DOC_CLASS_DELIMITER) - val text = if (methodParametersAsString == EMPTY_STRING) { + val text = if (validMethodParameters == EMPTY_STRING) { "$prettyClassName#$methodName()" } else { - "$prettyClassName#$methodName($methodParametersAsString)" + "$prettyClassName#$methodName($validMethodParameters)" } return if (isPrivate) {