@@ -73,6 +73,7 @@ const val JUNIT5_PARAMETERIZED_PACKAGE = "org.junit.jupiter.params"
7373
7474// JUnit5 imports
7575private const val TEST_NG_ASSERTIONS = " org.testng.Assert"
76+ private const val TEST_NG_ARRAYS_ASSERTIONS = " org.testng.internal.junit.ArrayAsserts"
7677private const val JUNIT5_ASSERTIONS = " org.junit.jupiter.api.Assertions"
7778private const val JUNIT4_ASSERTIONS = " org.junit.Assert"
7879
@@ -170,6 +171,7 @@ sealed class TestFramework(
170171 var isInstalled: Boolean = false
171172 abstract val mainPackage: String
172173 abstract val assertionsClass: ClassId
174+ abstract val arraysAssertionsClass: ClassId
173175 abstract val testAnnotation: String
174176 abstract val testAnnotationId: ClassId
175177 abstract val testAnnotationFqn: String
@@ -186,23 +188,23 @@ sealed class TestFramework(
186188
187189 val assertDoubleEquals by lazy { assertionId(" assertEquals" , doubleClassId, doubleClassId, doubleClassId) }
188190
189- val assertArrayEquals by lazy { assertionId (" assertArrayEquals" , Array <Any >::class .id, Array <Any >::class .id) }
191+ val assertArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , Array <Any >::class .id, Array <Any >::class .id) }
190192
191- val assertBooleanArrayEquals by lazy { assertionId(" assertArrayEquals" , booleanArrayClassId, booleanArrayClassId) }
193+ open val assertBooleanArrayEquals by lazy { assertionId(" assertArrayEquals" , booleanArrayClassId, booleanArrayClassId) }
192194
193- val assertByteArrayEquals by lazy { assertionId (" assertArrayEquals" , byteArrayClassId, byteArrayClassId) }
195+ val assertByteArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , byteArrayClassId, byteArrayClassId) }
194196
195- val assertCharArrayEquals by lazy { assertionId (" assertArrayEquals" , charArrayClassId, charArrayClassId) }
197+ val assertCharArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , charArrayClassId, charArrayClassId) }
196198
197- val assertShortArrayEquals by lazy { assertionId (" assertArrayEquals" , shortArrayClassId, shortArrayClassId) }
199+ val assertShortArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , shortArrayClassId, shortArrayClassId) }
198200
199- val assertIntArrayEquals by lazy { assertionId (" assertArrayEquals" , intArrayClassId, intArrayClassId) }
201+ val assertIntArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , intArrayClassId, intArrayClassId) }
200202
201- val assertLongArrayEquals by lazy { assertionId (" assertArrayEquals" , longArrayClassId, longArrayClassId) }
203+ val assertLongArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , longArrayClassId, longArrayClassId) }
202204
203- val assertFloatArrayEquals by lazy { assertionId (" assertArrayEquals" , floatArrayClassId, floatArrayClassId, floatClassId) }
205+ val assertFloatArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , floatArrayClassId, floatArrayClassId, floatClassId) }
204206
205- val assertDoubleArrayEquals by lazy { assertionId (" assertArrayEquals" , doubleArrayClassId, doubleArrayClassId, doubleClassId) }
207+ val assertDoubleArrayEquals by lazy { arrayAssertionId (" assertArrayEquals" , doubleArrayClassId, doubleArrayClassId, doubleClassId) }
206208
207209 val assertNull by lazy { assertionId(" assertNull" , objectClassId) }
208210
@@ -212,8 +214,10 @@ sealed class TestFramework(
212214
213215 val assertNotEquals by lazy { assertionId(" assertNotEquals" , objectClassId, objectClassId) }
214216
215- private fun assertionId (name : String , vararg params : ClassId ): MethodId =
217+ protected fun assertionId (name : String , vararg params : ClassId ): MethodId =
216218 builtinStaticMethodId(assertionsClass, name, voidClassId, * params)
219+ private fun arrayAssertionId (name : String , vararg params : ClassId ): MethodId =
220+ builtinStaticMethodId(arraysAssertionsClass, name, voidClassId, * params)
217221
218222 abstract fun getRunTestsCommand (
219223 executionInvoke : String ,
@@ -251,6 +255,14 @@ object TestNg : TestFramework(displayName = "TestNG") {
251255 simpleName = " Assert"
252256 )
253257
258+ override val arraysAssertionsClass: ClassId = BuiltinClassId (
259+ name = TEST_NG_ARRAYS_ASSERTIONS ,
260+ canonicalName = TEST_NG_ARRAYS_ASSERTIONS ,
261+ simpleName = " ArrayAsserts"
262+ )
263+
264+ override val assertBooleanArrayEquals by lazy { assertionId(" assertEquals" , booleanArrayClassId, booleanArrayClassId) }
265+
254266 val throwingRunnableClassId = BuiltinClassId (
255267 name = " ${assertionsClass.name} \$ ThrowingRunnable" ,
256268 canonicalName = " ${assertionsClass.canonicalName} .ThrowingRunnable" ,
@@ -353,6 +365,7 @@ object Junit4 : TestFramework("JUnit4") {
353365 canonicalName = JUNIT4_ASSERTIONS ,
354366 simpleName = " Assert"
355367 )
368+ override val arraysAssertionsClass = assertionsClass
356369
357370 val ignoreAnnotationClassId = with (" $JUNIT4_PACKAGE .Ignore" ) {
358371 BuiltinClassId (
@@ -421,6 +434,8 @@ object Junit5 : TestFramework("JUnit5") {
421434 simpleName = " Assertions"
422435 )
423436
437+ override val arraysAssertionsClass = assertionsClass
438+
424439 val assertThrows = builtinStaticMethodId(
425440 classId = assertionsClass,
426441 name = " assertThrows" ,
0 commit comments