@@ -36,6 +36,99 @@ inline fun <reified T : Any> argumentCaptor(): KArgumentCaptor<T> {
36
36
return KArgumentCaptor (ArgumentCaptor .forClass(T ::class .java), T ::class )
37
37
}
38
38
39
+ /* *
40
+ * Creates 2 [KArgumentCaptor]s for given types.
41
+ */
42
+ inline fun <reified A : Any , reified B : Any > argumentCaptor (
43
+ a : KClass <A > = A : :class,
44
+ b : KClass <B > = B : :class
45
+ ): Pair <KArgumentCaptor <A >, KArgumentCaptor<B>> {
46
+ return Pair (
47
+ KArgumentCaptor (ArgumentCaptor .forClass(a.java), a),
48
+ KArgumentCaptor (ArgumentCaptor .forClass(b.java), b)
49
+ )
50
+ }
51
+
52
+ /* *
53
+ * Creates 3 [KArgumentCaptor]s for given types.
54
+ */
55
+ inline fun <reified A : Any , reified B : Any , reified C : Any > argumentCaptor (
56
+ a : KClass <A > = A : :class,
57
+ b : KClass <B > = B : :class,
58
+ c : KClass <C > = C : :class
59
+ ): Triple <KArgumentCaptor <A >, KArgumentCaptor<B>, KArgumentCaptor<C>> {
60
+ return Triple (
61
+ KArgumentCaptor (ArgumentCaptor .forClass(a.java), a),
62
+ KArgumentCaptor (ArgumentCaptor .forClass(b.java), b),
63
+ KArgumentCaptor (ArgumentCaptor .forClass(c.java), c)
64
+ )
65
+ }
66
+
67
+ class ArgumentCaptorHolder4 <out A , out B , out C , out D >(
68
+ val first : A ,
69
+ val second : B ,
70
+ val third : C ,
71
+ val fourth : D
72
+ ) {
73
+
74
+ operator fun component1 () = first
75
+ operator fun component2 () = second
76
+ operator fun component3 () = third
77
+ operator fun component4 () = fourth
78
+ }
79
+
80
+ class ArgumentCaptorHolder5 <out A , out B , out C , out D , out E >(
81
+ val first : A ,
82
+ val second : B ,
83
+ val third : C ,
84
+ val fourth : D ,
85
+ val fifth : E
86
+ ) {
87
+
88
+ operator fun component1 () = first
89
+ operator fun component2 () = second
90
+ operator fun component3 () = third
91
+ operator fun component4 () = fourth
92
+ operator fun component5 () = fifth
93
+ }
94
+
95
+
96
+ /* *
97
+ * Creates 4 [KArgumentCaptor]s for given types.
98
+ */
99
+ inline fun <reified A : Any , reified B : Any , reified C : Any , reified D : Any > argumentCaptor (
100
+ a : KClass <A > = A : :class,
101
+ b : KClass <B > = B : :class,
102
+ c : KClass <C > = C : :class,
103
+ d : KClass <D > = D : :class
104
+ ): ArgumentCaptorHolder4 <KArgumentCaptor <A >, KArgumentCaptor<B>, KArgumentCaptor<C>, KArgumentCaptor<D>> {
105
+ return ArgumentCaptorHolder4 (
106
+ KArgumentCaptor (ArgumentCaptor .forClass(a.java), a),
107
+ KArgumentCaptor (ArgumentCaptor .forClass(b.java), b),
108
+ KArgumentCaptor (ArgumentCaptor .forClass(c.java), c),
109
+ KArgumentCaptor (ArgumentCaptor .forClass(d.java), d)
110
+ )
111
+ }
112
+
113
+ /* *
114
+ * Creates 4 [KArgumentCaptor]s for given types.
115
+ */
116
+ inline fun <reified A : Any , reified B : Any , reified C : Any , reified D : Any , reified E : Any > argumentCaptor (
117
+ a : KClass <A > = A : :class,
118
+ b : KClass <B > = B : :class,
119
+ c : KClass <C > = C : :class,
120
+ d : KClass <D > = D : :class,
121
+ e : KClass <E > = E : :class
122
+ ): ArgumentCaptorHolder5 <KArgumentCaptor <A >, KArgumentCaptor<B>, KArgumentCaptor<C>, KArgumentCaptor<D>, KArgumentCaptor<E>> {
123
+ return ArgumentCaptorHolder5 (
124
+ KArgumentCaptor (ArgumentCaptor .forClass(a.java), a),
125
+ KArgumentCaptor (ArgumentCaptor .forClass(b.java), b),
126
+ KArgumentCaptor (ArgumentCaptor .forClass(c.java), c),
127
+ KArgumentCaptor (ArgumentCaptor .forClass(d.java), d),
128
+ KArgumentCaptor (ArgumentCaptor .forClass(e.java), e)
129
+ )
130
+ }
131
+
39
132
/* *
40
133
* Creates a [KArgumentCaptor] for given type, taking in a lambda to allow fast verification.
41
134
*/
0 commit comments