Skip to content

Commit 419d415

Browse files
committed
Add support for both Cookie libraries for different versions of Spring
1 parent 36c23ff commit 419d415

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,
@@ -446,10 +448,9 @@ object SpringModelUtils {
446448
val headersContentModel = createHeadersContentModel(methodId, arguments, idGenerator)
447449
requestBuilderModel = addHeadersToRequestBuilderModel(headersContentModel, requestBuilderModel, idGenerator)
448450

449-
// // TODO uncomment when #2542 is fixed
450-
// val cookieValuesModel = createCookieValuesModel(methodId, arguments, idGenerator)
451-
// requestBuilderModel =
452-
// addCookiesToRequestBuilderModel(cookieValuesModel, requestBuilderModel, idGenerator)
451+
val cookieValuesModel = createCookieValuesModel(methodId, arguments, idGenerator)
452+
requestBuilderModel =
453+
addCookiesToRequestBuilderModel(cookieValuesModel, requestBuilderModel, idGenerator)
453454

454455
val requestAttributes = collectArgumentsWithAnnotationModels(methodId, requestAttributesClassId, arguments)
455456
requestBuilderModel =
@@ -526,29 +527,28 @@ object SpringModelUtils {
526527
return requestBuilderModel
527528
}
528529

529-
// // TODO uncomment when #2542 is fixed
530-
// private fun addCookiesToRequestBuilderModel(
531-
// cookieValuesModel: UtArrayModel,
532-
// requestBuilderModel: UtAssembleModel,
533-
// idGenerator: () -> Int
534-
// ): UtAssembleModel {
535-
// @Suppress("NAME_SHADOWING")
536-
// var requestBuilderModel = requestBuilderModel
537-
//
538-
// if(cookieValuesModel.length > 0) {
539-
// requestBuilderModel = UtAssembleModel(
540-
// id = idGenerator(),
541-
// classId = mockHttpServletRequestBuilderClassId,
542-
// modelName = "requestBuilder",
543-
// instantiationCall = UtExecutableCallModel(
544-
// instance = requestBuilderModel,
545-
// executable = mockHttpServletCookieMethodId,
546-
// params = listOf(cookieValuesModel)
547-
// )
548-
// )
549-
// }
550-
// return requestBuilderModel
551-
// }
530+
private fun addCookiesToRequestBuilderModel(
531+
cookieValuesModel: UtArrayModel,
532+
requestBuilderModel: UtAssembleModel,
533+
idGenerator: () -> Int
534+
): UtAssembleModel {
535+
@Suppress("NAME_SHADOWING")
536+
var requestBuilderModel = requestBuilderModel
537+
538+
if(cookieValuesModel.length > 0) {
539+
requestBuilderModel = UtAssembleModel(
540+
id = idGenerator(),
541+
classId = mockHttpServletRequestBuilderClassId,
542+
modelName = "requestBuilder",
543+
instantiationCall = UtExecutableCallModel(
544+
instance = requestBuilderModel,
545+
executable = mockHttpServletCookieMethodId,
546+
params = listOf(cookieValuesModel)
547+
)
548+
)
549+
}
550+
return requestBuilderModel
551+
}
552552

553553
private fun addHeadersToRequestBuilderModel(
554554
headersContentModel: UtAssembleModel,

0 commit comments

Comments
 (0)