1
1
package org.utbot.framework.plugin.api.util
2
2
3
+ import mu.KotlinLogging
3
4
import org.utbot.common.tryLoadClass
4
5
import org.utbot.common.withToStringThreadLocalReentrancyGuard
5
6
import org.utbot.framework.plugin.api.isNotNull
@@ -17,6 +18,8 @@ import org.utbot.framework.plugin.api.mapper.UtModelDeepMapper
17
18
import org.utbot.framework.plugin.api.mapper.mapModels
18
19
import java.util.Optional
19
20
21
+ private val logger = KotlinLogging .logger {}
22
+
20
23
object SpringModelUtils {
21
24
val autowiredClassId = ClassId (" org.springframework.beans.factory.annotation.Autowired" )
22
25
@@ -57,7 +60,7 @@ object SpringModelUtils {
57
60
58
61
// the library in which Cookie is stored depends on the version of Spring
59
62
private val cookiesLibraries = listOf (" javax.servlet.http" , " jakarta.servlet.http" )
60
- private val cookieClassId = getClassIdFromEachAvailablePackage(cookiesLibraries, " Cookie" ).single( )
63
+ private val cookieClassIds = getClassIdFromEachAvailablePackage(cookiesLibraries, " Cookie" )
61
64
62
65
val entityClassIds get() = persistentClassIds(" Entity" )
63
66
val generatedValueClassIds get() = persistentClassIds(" GeneratedValue" )
@@ -210,7 +213,7 @@ object SpringModelUtils {
210
213
parameters = listOf (httpHeaderClassId)
211
214
)
212
215
213
- private val mockHttpServletCookieMethodId = MethodId (
216
+ private fun mockHttpServletCookieMethodId ( cookieClassId : ClassId ) = MethodId (
214
217
classId = mockHttpServletRequestBuilderClassId,
215
218
name = " cookie" ,
216
219
returnType = mockHttpServletRequestBuilderClassId,
@@ -415,9 +418,15 @@ object SpringModelUtils {
415
418
val headersContentModel = createHeadersContentModel(methodId, arguments, idGenerator)
416
419
requestBuilderModel = addHeadersToRequestBuilderModel(headersContentModel, requestBuilderModel, idGenerator)
417
420
418
- val cookieValuesModel = createCookieValuesModel(methodId, arguments, idGenerator)
419
- requestBuilderModel =
420
- addCookiesToRequestBuilderModel(cookieValuesModel, requestBuilderModel, idGenerator)
421
+ val cookieClassId = cookieClassIds.singleOrNull()
422
+ if (cookieClassId is ClassId ) {
423
+ val cookieValuesModel = createCookieValuesModel(cookieClassId, methodId, arguments, idGenerator)
424
+ requestBuilderModel =
425
+ addCookiesToRequestBuilderModel(cookieClassId, cookieValuesModel, requestBuilderModel, idGenerator)
426
+ }
427
+ else {
428
+ logger.warn { " Cookie library not found" }
429
+ }
421
430
422
431
val requestAttributes = collectArgumentsWithAnnotationModels(methodId, requestAttributesClassId, arguments)
423
432
requestBuilderModel =
@@ -495,6 +504,7 @@ object SpringModelUtils {
495
504
}
496
505
497
506
private fun addCookiesToRequestBuilderModel (
507
+ cookieClassId : ClassId ,
498
508
cookieValuesModel : UtArrayModel ,
499
509
requestBuilderModel : UtAssembleModel ,
500
510
idGenerator : () -> Int
@@ -509,7 +519,7 @@ object SpringModelUtils {
509
519
modelName = " requestBuilder" ,
510
520
instantiationCall = UtExecutableCallModel (
511
521
instance = requestBuilderModel,
512
- executable = mockHttpServletCookieMethodId,
522
+ executable = mockHttpServletCookieMethodId(cookieClassId) ,
513
523
params = listOf (cookieValuesModel)
514
524
)
515
525
)
@@ -643,6 +653,7 @@ object SpringModelUtils {
643
653
}
644
654
645
655
private fun createCookieValuesModel (
656
+ cookieClassId : ClassId ,
646
657
methodId : MethodId ,
647
658
arguments : List <UtModel >,
648
659
idGenerator : () -> Int ,
0 commit comments