Skip to content

Commit 239d1f1

Browse files
committed
Add support for both Cookie libraries for different versions of Spring
1 parent 5dff7df commit 239d1f1

File tree

1 file changed

+35
-35
lines changed

1 file changed

+35
-35
lines changed

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/util/SpringModelUtils.kt

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ object SpringModelUtils {
5555
private val persistentLibraries = listOf("javax.persistence", "jakarta.persistence")
5656
private fun persistentClassIds(simpleName: String) = getClassIdFromEachAvailablePackage(persistentLibraries, simpleName)
5757

58+
// the library in which Cookie is stored depends on the version of Spring
59+
private val cookiesLibraries = listOf("javax.servlet.http", "jakarta.servlet.http")
60+
private val cookieClassId = getClassIdFromEachAvailablePackage(cookiesLibraries, "Cookie").single()
61+
5862
val entityClassIds get() = persistentClassIds("Entity")
5963
val generatedValueClassIds get() = persistentClassIds("GeneratedValue")
6064
val idClassIds get() = persistentClassIds("Id")
@@ -171,7 +175,6 @@ object SpringModelUtils {
171175
private val httpHeaderClassId = ClassId("org.springframework.http.HttpHeaders")
172176

173177
private val objectMapperClassId = ClassId("com.fasterxml.jackson.databind.ObjectMapper")
174-
private val cookieClassId = ClassId("javax.servlet.http.Cookie")
175178

176179
// as of Spring 6.0 `NestedServletException` is deprecated in favor of standard `ServletException` nesting
177180
val nestedServletExceptionClassIds = listOf(
@@ -207,13 +210,12 @@ object SpringModelUtils {
207210
parameters = listOf(httpHeaderClassId)
208211
)
209212

210-
// // TODO uncomment when #2542 is fixed
211-
// private val mockHttpServletCookieMethodId = MethodId(
212-
// classId = mockHttpServletRequestBuilderClassId,
213-
// name = "cookie",
214-
// returnType = mockHttpServletRequestBuilderClassId,
215-
// parameters = listOf(getArrayClassIdByElementClassId(cookieClassId))
216-
// )
213+
private val mockHttpServletCookieMethodId = MethodId(
214+
classId = mockHttpServletRequestBuilderClassId,
215+
name = "cookie",
216+
returnType = mockHttpServletRequestBuilderClassId,
217+
parameters = listOf(getArrayClassIdByElementClassId(cookieClassId))
218+
)
217219

218220
private val mockHttpServletContentTypeMethodId = MethodId(
219221
classId = mockHttpServletRequestBuilderClassId,
@@ -413,10 +415,9 @@ object SpringModelUtils {
413415
val headersContentModel = createHeadersContentModel(methodId, arguments, idGenerator)
414416
requestBuilderModel = addHeadersToRequestBuilderModel(headersContentModel, requestBuilderModel, idGenerator)
415417

416-
// // TODO uncomment when #2542 is fixed
417-
// val cookieValuesModel = createCookieValuesModel(methodId, arguments, idGenerator)
418-
// requestBuilderModel =
419-
// addCookiesToRequestBuilderModel(cookieValuesModel, requestBuilderModel, idGenerator)
418+
val cookieValuesModel = createCookieValuesModel(methodId, arguments, idGenerator)
419+
requestBuilderModel =
420+
addCookiesToRequestBuilderModel(cookieValuesModel, requestBuilderModel, idGenerator)
420421

421422
val requestAttributes = collectArgumentsWithAnnotationModels(methodId, requestAttributesClassId, arguments)
422423
requestBuilderModel =
@@ -493,29 +494,28 @@ object SpringModelUtils {
493494
return requestBuilderModel
494495
}
495496

496-
// // TODO uncomment when #2542 is fixed
497-
// private fun addCookiesToRequestBuilderModel(
498-
// cookieValuesModel: UtArrayModel,
499-
// requestBuilderModel: UtAssembleModel,
500-
// idGenerator: () -> Int
501-
// ): UtAssembleModel {
502-
// @Suppress("NAME_SHADOWING")
503-
// var requestBuilderModel = requestBuilderModel
504-
//
505-
// if(cookieValuesModel.length > 0) {
506-
// requestBuilderModel = UtAssembleModel(
507-
// id = idGenerator(),
508-
// classId = mockHttpServletRequestBuilderClassId,
509-
// modelName = "requestBuilder",
510-
// instantiationCall = UtExecutableCallModel(
511-
// instance = requestBuilderModel,
512-
// executable = mockHttpServletCookieMethodId,
513-
// params = listOf(cookieValuesModel)
514-
// )
515-
// )
516-
// }
517-
// return requestBuilderModel
518-
// }
497+
private fun addCookiesToRequestBuilderModel(
498+
cookieValuesModel: UtArrayModel,
499+
requestBuilderModel: UtAssembleModel,
500+
idGenerator: () -> Int
501+
): UtAssembleModel {
502+
@Suppress("NAME_SHADOWING")
503+
var requestBuilderModel = requestBuilderModel
504+
505+
if(cookieValuesModel.length > 0) {
506+
requestBuilderModel = UtAssembleModel(
507+
id = idGenerator(),
508+
classId = mockHttpServletRequestBuilderClassId,
509+
modelName = "requestBuilder",
510+
instantiationCall = UtExecutableCallModel(
511+
instance = requestBuilderModel,
512+
executable = mockHttpServletCookieMethodId,
513+
params = listOf(cookieValuesModel)
514+
)
515+
)
516+
}
517+
return requestBuilderModel
518+
}
519519

520520
private fun addHeadersToRequestBuilderModel(
521521
headersContentModel: UtAssembleModel,

0 commit comments

Comments
 (0)