forked from mockk/mockk
/
ChainedCallDetectorTest.kt
64 lines (47 loc) · 2.24 KB
/
ChainedCallDetectorTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package io.mockk.impl.recording
import io.mockk.EqMatcher
import io.mockk.Matcher
import io.mockk.every
import io.mockk.impl.log.SafeToString
import io.mockk.mockk
import kotlin.test.Test
import kotlin.test.assertEquals
class ChainedCallDetectorTest {
val safeToString = mockk<SafeToString>(relaxed = true)
val detector = ChainedCallDetector(safeToString)
val callRound1 = mockk<CallRound>(relaxed = true)
val callRound2 = mockk<CallRound>(relaxed = true)
val call1 = mockk<SignedCall>(relaxed = true)
val call2 = mockk<SignedCall>(relaxed = true)
val signedMatcher1 = mockk<SignedMatcher>(relaxed = true)
val signedMatcher2 = mockk<SignedMatcher>(relaxed = true)
@Test
fun givenTwoCallRoundsWithOneCallNoArgsWhenDetectCallsHappenThenOneCallIsReturned() {
every { callRound1.calls } returns listOf(call1)
every { callRound2.calls } returns listOf(call2)
every { call1.method.name } returns "abc"
every { call2.method.name } returns "abc"
every { call1.method.varArgsArg } returns -1
every { call2.method.varArgsArg } returns -1
detector.detect(listOf(callRound1, callRound2), 0, SignatureMatchersMap())
assertEquals("abc", detector.call.matcher.method.name)
}
@Test
fun givenTwoCallsRoundsWithOneCallOneArgWhenDetectCallsHappenThenOneCallWithArgIsReturned() {
val matchersMap = SignatureMatchersMap()
matchersMap.add(listOf(signedMatcher1.signature, signedMatcher2.signature), signedMatcher1.matcher)
every { callRound1.calls } returns listOf(call1)
every { callRound2.calls } returns listOf(call2)
every { signedMatcher1.signature } returns 5
every { signedMatcher2.signature } returns 6
every { call1.args } returns listOf(5)
every { call2.args } returns listOf(6)
every { call1.method.name } returns "abc"
every { call2.method.name } returns "abc"
every { call1.method.varArgsArg } returns -1
every { call2.method.varArgsArg } returns -1
detector.detect(listOf(callRound1, callRound2), 0, matchersMap)
assertEquals("abc", detector.call.matcher.method.name)
assertEquals(listOf<Matcher<*>>(EqMatcher(5)), detector.call.matcher.args)
}
}