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,
@@ -448,9 +451,15 @@ object SpringModelUtils {
448
451
val headersContentModel = createHeadersContentModel(methodId, arguments, idGenerator)
449
452
requestBuilderModel = addHeadersToRequestBuilderModel(headersContentModel, requestBuilderModel, idGenerator)
450
453
451
- val cookieValuesModel = createCookieValuesModel(methodId, arguments, idGenerator)
452
- requestBuilderModel =
453
- addCookiesToRequestBuilderModel(cookieValuesModel, requestBuilderModel, idGenerator)
454
+ val cookieClassId = cookieClassIds.singleOrNull()
455
+ if (cookieClassId is ClassId ) {
456
+ val cookieValuesModel = createCookieValuesModel(cookieClassId, methodId, arguments, idGenerator)
457
+ requestBuilderModel =
458
+ addCookiesToRequestBuilderModel(cookieClassId, cookieValuesModel, requestBuilderModel, idGenerator)
459
+ }
460
+ else {
461
+ logger.warn { " Cookie library not found" }
462
+ }
454
463
455
464
val requestAttributes = collectArgumentsWithAnnotationModels(methodId, requestAttributesClassId, arguments)
456
465
requestBuilderModel =
@@ -528,6 +537,7 @@ object SpringModelUtils {
528
537
}
529
538
530
539
private fun addCookiesToRequestBuilderModel (
540
+ cookieClassId : ClassId ,
531
541
cookieValuesModel : UtArrayModel ,
532
542
requestBuilderModel : UtAssembleModel ,
533
543
idGenerator : () -> Int
@@ -542,7 +552,7 @@ object SpringModelUtils {
542
552
modelName = " requestBuilder" ,
543
553
instantiationCall = UtExecutableCallModel (
544
554
instance = requestBuilderModel,
545
- executable = mockHttpServletCookieMethodId,
555
+ executable = mockHttpServletCookieMethodId(cookieClassId) ,
546
556
params = listOf (cookieValuesModel)
547
557
)
548
558
)
@@ -676,6 +686,7 @@ object SpringModelUtils {
676
686
}
677
687
678
688
private fun createCookieValuesModel (
689
+ cookieClassId : ClassId ,
679
690
methodId : MethodId ,
680
691
arguments : List <UtModel >,
681
692
idGenerator : () -> Int ,
0 commit comments