Skip to content

Commit 5ccb38e

Browse files
IlyaMuravjovCaelmBleidd
authored andcommitted
Support regions without comments, e.g. mocking utils region for Spring #1920 (#1926)
1 parent 9c6c577 commit 5ccb38e

File tree

4 files changed

+19
-26
lines changed

4 files changed

+19
-26
lines changed

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/domain/models/CgElement.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ class CgClassBody(
164164
* A class representing the IntelliJ IDEA's regions.
165165
* A region is a part of code between the special starting and ending comments.
166166
*
167-
* [header] The header of the region.
167+
* @property header The header of the region,
168+
* no ///region and ///endregion comments are generated if [header] is `null`
168169
*/
169170
sealed class CgRegion<out T : CgElement> : CgElement {
170171
abstract val header: String?

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/renderer/CgAbstractRenderer.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,10 @@ abstract class CgAbstractRenderer(
190190
private fun CgRegion<*>.render(printLineAfterContentEnd: Boolean = false) {
191191
if (content.isEmpty() || isInterrupted) return
192192

193-
print(regionStart)
194-
header?.let { print(" $it") }
195-
println()
193+
header?.let {
194+
print(regionStart)
195+
println(" $it")
196+
}
196197

197198
if (this is CgTestMethodCluster) description?.accept(this@CgAbstractRenderer)
198199

@@ -208,7 +209,9 @@ abstract class CgAbstractRenderer(
208209

209210
if (printLineAfterContentEnd) println()
210211

211-
println(regionEnd)
212+
header?.let {
213+
println(regionEnd)
214+
}
212215

213216
if (isLimitExceeded && !isInterrupted) {
214217
visit(CgSingleLineComment("Abrupt generation termination: file size exceeds configured limit (${FileUtil.byteCountToDisplaySize(UtSettings.maxTestFileSize.toLong())})"))

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/renderer/CgKotlinRenderer.kt

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -183,23 +183,6 @@ internal class CgKotlinRenderer(context: CgRendererContext, printer: CgPrinter =
183183
println("}")
184184
}
185185

186-
override fun visit(element: CgStaticsRegion) {
187-
if (element.content.isEmpty()) return
188-
189-
print(regionStart)
190-
element.header?.let { print(" $it") }
191-
println()
192-
193-
for (item in element.content) {
194-
println()
195-
println("@JvmStatic")
196-
item.accept(this)
197-
}
198-
199-
println(regionEnd)
200-
}
201-
202-
203186
// Property access
204187

205188
override fun visit(element: CgFieldAccess) {
@@ -383,6 +366,12 @@ internal class CgKotlinRenderer(context: CgRendererContext, printer: CgPrinter =
383366
print(")")
384367
}
385368

369+
override fun visit(element: CgParameterizedTestDataProviderMethod) {
370+
println()
371+
println("@JvmStatic")
372+
super.visit(element)
373+
}
374+
386375
override fun renderRegularImport(regularImport: RegularImport) {
387376
val escapedImport = getEscapedImportRendering(regularImport)
388377
println("import $escapedImport$statementEnding")
@@ -654,4 +643,4 @@ internal class CgKotlinRenderer(context: CgRendererContext, printer: CgPrinter =
654643
print(">")
655644
}
656645
}
657-
}
646+
}

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/tree/CgSpringTestClassConstructor.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ class CgSpringTestClassConstructor(context: CgContext): CgAbstractTestClassConst
123123
)
124124

125125
val methodCluster = CgMethodsCluster(
126-
"Test run utility methods",
127-
listOf(CgSimpleRegion("Mocking utils", listOf(beforeMethod, afterMethod)))
126+
header = null,
127+
listOf(CgSimpleRegion(header = null, listOf(beforeMethod, afterMethod)))
128128
)
129129

130130
return mockitoCloseableField to methodCluster
131131
}
132-
}
132+
}

0 commit comments

Comments
 (0)