Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e88bd65
Introduce custom plugin's JavaDoc tags #565
onewhl Jul 22, 2022
43c4cf0
Render UtBot custom JavaDoc tags correctly #565
onewhl Jul 25, 2022
760594f
Add an option to generate summaries using custom JavaDoc tags #565
onewhl Jul 26, 2022
050550f
Fill value of utbot.iterates tag #565
onewhl Jul 27, 2022
ca86976
Collect info about Invoke, Iterate, and Return sections #565
onewhl Jul 28, 2022
d77e739
Review fixes
onewhl Aug 1, 2022
6ae1157
Add unit tests for summaries with custom JavaDoc tags #565
onewhl Aug 2, 2022
100e3df
Fix after rebasing
onewhl Aug 3, 2022
8d4063b
Add summary tests for MinStack #565
onewhl Aug 3, 2022
6d01afe
Fix broken tests
onewhl Aug 4, 2022
d03ad76
Add <pre> tag only in case when custom javadoc tags are not used
onewhl Aug 4, 2022
74c5822
Use a full exception name instead of simple name to build inline link…
onewhl Aug 6, 2022
7e4aaf9
Minor refactoring
onewhl Aug 6, 2022
92eb15d
Minor refactoring: avoid code duplication
onewhl Aug 6, 2022
cf9b60f
Add DocCustomTagStatement and CgCustomTagStatement
onewhl Aug 6, 2022
9c14eb0
Refactored code to avoid code duplication
onewhl Aug 6, 2022
6dce850
Fix tests: add full name for classes
onewhl Aug 6, 2022
7800d33
Add JUnit extension to control USE_CUSTOM_TAGS setting
onewhl Aug 6, 2022
d003962
Move useCustomJavaDocTags to UtSettings, make useFuzzing true
onewhl Aug 7, 2022
f8e6764
Remove unused import and fix broken tests
onewhl Aug 7, 2022
321bf0d
Fix broken tests
onewhl Aug 8, 2022
a52fb20
Add comments, remove unused method
onewhl Aug 8, 2022
83f4e71
Review fixes: fixed formatting, removed redundant types
onewhl Aug 9, 2022
abe7ca6
Review fixes: fixed formatting, removed useless overriding methods
onewhl Aug 15, 2022
475cae5
Review fixes: extracted method, polished code
onewhl Aug 15, 2022
99b06ad
fix after rebasing
onewhl Aug 17, 2022
21a7035
fix after rebasing
onewhl Aug 23, 2022
4951b6f
review fixes
onewhl Aug 23, 2022
bd616a9
fix rendering after updating to idea 2022.1. now we don't need to gen…
onewhl Aug 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add summary tests for MinStack #565
  • Loading branch information
onewhl committed Aug 24, 2022
commit 8d4063ba2d4c3ad5ce0424f302b2c14009fd5ef8
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
package examples.structures

import examples.SummaryTestCaseGeneratorTest
import org.junit.jupiter.api.Test
import org.utbot.examples.DoNotCalculate
import org.utbot.examples.structures.MinStack
import org.utbot.framework.plugin.api.MockStrategyApi

class SummaryMinStackTest : SummaryTestCaseGeneratorTest(
MinStack::class
) {
@Test
fun testGetMin() {
val summary1 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#getMin()}\n" +
"@utbot.throwsException {@link ArrayIndexOutOfBoundsException} in: return minStack[size - 1];"

val summary2 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#getMin()}\n" +
"@utbot.throwsException {@link NullPointerException} in: return minStack[size - 1];"

val summary3 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#getMin()}\n" +
"@utbot.returnsFrom {@code return minStack[size - 1];}\n"

val methodName1 = "testGetMin_ThrowArrayIndexOutOfBoundsException"
val methodName2 = "testGetMin_ThrowNullPointerException"
val methodName3 = "testGetMin_ReturnSize1OfMinStack"

val displayName1 = "return minStack[size - 1] : True -> ThrowArrayIndexOutOfBoundsException"
val displayName2 = "return minStack[size - 1] : True -> ThrowNullPointerException"
val displayName3 = "-> return minStack[size - 1]"

val summaryKeys = listOf(
summary1,
summary2,
summary3
)

val displayNames = listOf(
displayName1,
displayName2,
displayName3
)

val methodNames = listOf(
methodName1,
methodName2,
methodName3
)

val method = MinStack::getMin
val mockStrategy = MockStrategyApi.NO_MOCKS
val coverage = DoNotCalculate

checkSummariesWithCustomTags(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
}

@Test
fun testRemoveValue() {
val summary1 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#removeValue()}\n" +
"@utbot.executesCondition {@code (size <= 0): True}\n" +
"@utbot.throwsException {@link RuntimeException} after condition: {@code size <= 0}"

val summary2 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#removeValue()}\n" +
"@utbot.executesCondition {@code (size <= 0): False}\n"

val methodName1 = "testRemoveValue_SizeLessOrEqualZero"
val methodName2 = "testRemoveValue_SizeGreaterThanZero"

val displayName1 = "size <= 0 -> ThrowRuntimeException"
val displayName2 = "-> size <= 0 : False"

val summaryKeys = listOf(
summary1,
summary2
)

val displayNames = listOf(
displayName1,
displayName2
)

val methodNames = listOf(
methodName1,
methodName2
)

val method = MinStack::removeValue
val mockStrategy = MockStrategyApi.NO_MOCKS
val coverage = DoNotCalculate

checkSummariesWithCustomTags(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
}

@Test
fun testAddValue() {
val summary1 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.throwsException {@link ArrayIndexOutOfBoundsException} in: stack[size] = value;"

val summary2 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.throwsException {@link NullPointerException} in: stack[size] = value;"

val summary3 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.executesCondition {@code (size == 0): True}\n" +
"@utbot.throwsException {@link ArrayIndexOutOfBoundsException} in: minStack[size] = value;"

val summary4 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.executesCondition {@code (size == 0): True}\n" +
"@utbot.throwsException {@link NullPointerException} in: minStack[size] = value;"

val summary5 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.executesCondition {@code (size == 0): False}\n" +
"@utbot.throwsException {@link NullPointerException} in: minStack[size] = Math.min(minStack[size - 1], value);"

val summary6 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.executesCondition {@code (size == 0): False}\n" +
"@utbot.throwsException {@link ArrayIndexOutOfBoundsException} in: minStack[size] = Math.min(minStack[size - 1], value);"
val summary7 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.executesCondition {@code (size == 0): False}\n" +
"@utbot.invokes {@code {@link java.lang.Math#min(long,long)}}\n" +
"@utbot.throwsException {@link ArrayIndexOutOfBoundsException} in: minStack[size] = Math.min(minStack[size - 1], value);"
val summary8 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.executesCondition {@code (size == 0): True}\n"
val summary9 = "@utbot.classUnderTest {@link MinStack}\n" +
"@utbot.methodUnderTest {@link org.utbot.examples.structures.MinStack#addValue(long)}\n" +
"@utbot.executesCondition {@code (size == 0): False}\n" +
"@utbot.invokes {@code {@link java.lang.Math#min(long,long)}}\n"

val methodName1 = "testAddValue_ThrowArrayIndexOutOfBoundsException"
val methodName2 = "testAddValue_ThrowNullPointerException"
val methodName3 = "testAddValue_ThrowArrayIndexOutOfBoundsException_1"
val methodName4 = "testAddValue_ThrowNullPointerException_1"
val methodName5 = "testAddValue_ThrowNullPointerException_2"
val methodName6 = "testAddValue_ThrowArrayIndexOutOfBoundsException_2"
val methodName7 = "testAddValue_MathMin"
val methodName8 = "testAddValue_SizeEqualsZero"
val methodName9 = "testAddValue_SizeNotEqualsZero"

val displayName1 = "stack[size] = value -> ThrowArrayIndexOutOfBoundsException"
val displayName2 = "stack[size] = value -> ThrowNullPointerException"
val displayName3 = "minStack[size] = value -> ThrowArrayIndexOutOfBoundsException"
val displayName4 = "minStack[size] = value -> ThrowNullPointerException"
val displayName5 = "minStack[size] = Math.min(minStack[size - 1], value) -> ThrowNullPointerException"
val displayName6 = "minStack[size] = Math.min(minStack[size - 1], value) -> ThrowArrayIndexOutOfBoundsException"
val displayName7 = "minStack[size] = Math.min(minStack[size - 1], value) -> ThrowArrayIndexOutOfBoundsException"
val displayName8 = "-> size == 0 : True"
val displayName9 = "size == 0 : False -> MathMin"

val summaryKeys = listOf(
summary1,
summary2,
summary3,
summary4,
summary5,
summary6,
summary7,
summary8,
summary9
)

val displayNames = listOf(
displayName1,
displayName2,
displayName3,
displayName4,
displayName5,
displayName6,
displayName7,
displayName8,
displayName9
)

val methodNames = listOf(
methodName1,
methodName2,
methodName3,
methodName4,
methodName5,
methodName6,
methodName7,
methodName8,
methodName9,
)

val method = MinStack::addValue
val mockStrategy = MockStrategyApi.NO_MOCKS
val coverage = DoNotCalculate

checkSummariesWithCustomTags(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
}
}