1+ package org.utbot.examples.spring.autowiring
2+
3+ import org.junit.jupiter.api.Test
4+ import org.utbot.examples.spring.utils.springAdditionalDependencies
5+ import org.utbot.examples.spring.utils.standardSpringTestingConfigurations
6+ import org.utbot.framework.plugin.api.MockStrategyApi
7+ import org.utbot.testcheckers.eq
8+ import org.utbot.testing.*
9+ import kotlin.reflect.full.functions
10+ import kotlin.reflect.KFunction1
11+ import kotlin.reflect.KFunction2
12+
13+ internal class OrderServiceTests : UtValueTestCaseChecker (
14+ testClass = OrderService : :class,
15+ configurations = standardSpringTestingConfigurations
16+ ) {
17+ @Test
18+ fun testGetOrders () {
19+ checkMocks(
20+ method = OrderService ::getOrders,
21+ branches = eq(1 ),
22+ { mocks, r ->
23+ val orderRepository = mocks.singleMock(" orderRepository" , findAllRepositoryCall)
24+ orderRepository.value<List <Order >? > () == r
25+ },
26+ coverage = DoNotCalculate ,
27+ mockStrategy = MockStrategyApi .OTHER_CLASSES ,
28+ additionalDependencies = springAdditionalDependencies,
29+ )
30+ }
31+
32+ @Test
33+ fun testCreateOrder () {
34+ checkMocksWithExceptions(
35+ method = OrderService ::createOrder,
36+ // TODO: replace with `branches = eq(1)` after fix of https://github.com/UnitTestBot/UTBotJava/issues/2367
37+ branches = ignoreExecutionsNumber,
38+ { _: Order ? , mocks, r: Result <Order ?> ->
39+ val orderRepository = mocks.singleMock(" orderRepository" , saveRepositoryCall)
40+ orderRepository.value<Order ?>() == r.getOrNull()
41+ },
42+ coverage = DoNotCalculate ,
43+ mockStrategy = MockStrategyApi .OTHER_CLASSES ,
44+ additionalDependencies = springAdditionalDependencies,
45+ )
46+ }
47+
48+ @Suppress(" UNCHECKED_CAST" )
49+ private val findAllRepositoryCall: KFunction1 <OrderRepository , List <Order >? > =
50+ OrderRepository ::class
51+ .functions
52+ .single { it.name == " findAll" && it.parameters.size == 1 }
53+ as KFunction1 <OrderRepository , List <Order >? >
54+
55+
56+ @Suppress(" UNCHECKED_CAST" )
57+ private val saveRepositoryCall: KFunction2 <OrderRepository , Order ?, Order ?> =
58+ OrderRepository ::class
59+ .functions
60+ .single { it.name == " save" && it.parameters.size == 2 }
61+ as KFunction2 <OrderRepository , Order ?, Order ?>
62+ }
0 commit comments