@@ -121,4 +121,68 @@ private class FastKFunctionTest {
121
121
assertTrue(result is FastKFunction .TopLevelFunction )
122
122
}
123
123
}
124
+
125
+ @Nested
126
+ inner class InstanceFunctionOfTest {
127
+ fun instanceFunc (arg : String ) = println (arg)
128
+
129
+ @Nested
130
+ inner class KindIsInstance {
131
+ val function: KFunction <Unit > = InstanceFunctionOfTest ::instanceFunc
132
+ val parameters = function.parameters
133
+ val javaMethod = function.javaMethod!!
134
+
135
+ @Test
136
+ fun withoutInstance () {
137
+ assertThrows<IllegalArgumentException > {
138
+ FastKFunction .instanceFunctionOf(function, null , parameters, javaMethod)
139
+ }
140
+ }
141
+
142
+ @Test
143
+ fun withWrongInstance () {
144
+ assertThrows<IllegalArgumentException > {
145
+ FastKFunction .instanceFunctionOf(function, " " , parameters, javaMethod)
146
+ }
147
+ }
148
+
149
+ @Test
150
+ fun isCorrect () {
151
+ val result = assertDoesNotThrow {
152
+ FastKFunction .instanceFunctionOf(function, this @InstanceFunctionOfTest, parameters, javaMethod)
153
+ }
154
+ assertTrue(result is FastKFunction .InstanceFunction )
155
+ }
156
+ }
157
+
158
+ @Nested
159
+ inner class InstanceFunction {
160
+ val function: KFunction <Unit > = this @InstanceFunctionOfTest::instanceFunc
161
+ val parameters = function.parameters
162
+ val javaMethod = function.javaMethod!!
163
+
164
+ @Test
165
+ fun withoutInstance () {
166
+ val result = assertDoesNotThrow {
167
+ FastKFunction .instanceFunctionOf(function, null , parameters, javaMethod)
168
+ }
169
+ assertTrue(result is FastKFunction .Function )
170
+ }
171
+
172
+ @Test
173
+ fun withWrongInstance () {
174
+ assertThrows<IllegalArgumentException > {
175
+ FastKFunction .instanceFunctionOf(function, " " , parameters, javaMethod)
176
+ }
177
+ }
178
+
179
+ @Test
180
+ fun withCorrectInstance () {
181
+ val result = assertDoesNotThrow {
182
+ FastKFunction .instanceFunctionOf(function, this @InstanceFunctionOfTest, parameters, javaMethod)
183
+ }
184
+ assertTrue(result is FastKFunction .InstanceFunction )
185
+ }
186
+ }
187
+ }
124
188
}
0 commit comments