@ -7,6 +7,8 @@
package io.element.android.tests.testutils.lambda
package io.element.android.tests.testutils.lambda
import kotlinx.coroutines.runBlocking
/ * *
/ * *
* A recorder that can be used to record the parameters of lambda invocation .
* A recorder that can be used to record the parameters of lambda invocation .
* /
* /
@ -93,21 +95,21 @@ inline fun <reified R> lambdaAnyRecorder(
class LambdaNoParamRecorder < out R > ( ensureNeverCalled : Boolean , val block : ( ) -> R ) : LambdaRecorder ( ensureNeverCalled ) , ( ) -> R {
class LambdaNoParamRecorder < out R > ( ensureNeverCalled : Boolean , val block : ( ) -> R ) : LambdaRecorder ( ensureNeverCalled ) , ( ) -> R {
override fun invoke ( ) : R {
override fun invoke ( ) : R {
onInvoke ( )
onInvoke ( )
return block ( )
return runBlocking { block ( ) }
}
}
}
}
class LambdaOneParamRecorder < in T , out R > ( ensureNeverCalled : Boolean , val block : ( T ) -> R ) : LambdaRecorder ( ensureNeverCalled ) , ( T ) -> R {
class LambdaOneParamRecorder < in T , out R > ( ensureNeverCalled : Boolean , val block : ( T ) -> R ) : LambdaRecorder ( ensureNeverCalled ) , ( T ) -> R {
override fun invoke ( p : T ) : R {
override fun invoke ( p : T ) : R {
onInvoke ( p )
onInvoke ( p )
return block ( p )
return runBlocking { block ( p ) }
}
}
}
}
class LambdaTwoParamsRecorder < in T1 , in T2 , out R > ( ensureNeverCalled : Boolean , val block : ( T1 , T2 ) -> R ) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 ) -> R {
class LambdaTwoParamsRecorder < in T1 , in T2 , out R > ( ensureNeverCalled : Boolean , val block : ( T1 , T2 ) -> R ) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 ) : R {
onInvoke ( p1 , p2 )
onInvoke ( p1 , p2 )
return block ( p1 , p2 )
return runBlocking { block ( p1 , p2 ) }
}
}
}
}
@ -116,7 +118,7 @@ class LambdaThreeParamsRecorder<in T1, in T2, in T3, out R>(ensureNeverCalled: B
) , ( T1 , T2 , T3 ) -> R {
) , ( T1 , T2 , T3 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 ) : R {
onInvoke ( p1 , p2 , p3 )
onInvoke ( p1 , p2 , p3 )
return block ( p1 , p2 , p3 )
return runBlocking { block ( p1 , p2 , p3 ) }
}
}
}
}
@ -125,16 +127,19 @@ class LambdaFourParamsRecorder<in T1, in T2, in T3, in T4, out R>(ensureNeverCal
) , ( T1 , T2 , T3 , T4 ) -> R {
) , ( T1 , T2 , T3 , T4 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 ) : R {
onInvoke ( p1 , p2 , p3 , p4 )
onInvoke ( p1 , p2 , p3 , p4 )
return block ( p1 , p2 , p3 , p4 )
return runBlocking { block ( p1 , p2 , p3 , p4 ) }
}
}
}
}
class LambdaFiveParamsRecorder < in T1 , in T2 , in T3 , in T4 , in T5 , out R > ( ensureNeverCalled : Boolean , val block : ( T1 , T2 , T3 , T4 , T5 ) -> R ) : LambdaRecorder (
class LambdaFiveParamsRecorder < in T1 , in T2 , in T3 , in T4 , in T5 , out R > (
ensureNeverCalled : Boolean ,
val block : ( T1 , T2 , T3 , T4 , T5 ) -> R ,
) : LambdaRecorder (
ensureNeverCalled
ensureNeverCalled
) , ( T1 , T2 , T3 , T4 , T5 ) -> R {
) , ( T1 , T2 , T3 , T4 , T5 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 ) : R {
onInvoke ( p1 , p2 , p3 , p4 , p5 )
onInvoke ( p1 , p2 , p3 , p4 , p5 )
return block ( p1 , p2 , p3 , p4 , p5 )
return runBlocking { block ( p1 , p2 , p3 , p4 , p5 ) }
}
}
}
}
@ -144,7 +149,7 @@ class LambdaSixParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, out R>(
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 ) -> R {
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 ) : R {
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 )
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 )
return block ( p1 , p2 , p3 , p4 , p5 , p6 )
return runBlocking { block ( p1 , p2 , p3 , p4 , p5 , p6 ) }
}
}
}
}
@ -154,7 +159,7 @@ class LambdaSevenParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, in T7,
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 , T7 ) -> R {
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 , T7 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 , p7 : T7 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 , p7 : T7 ) : R {
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 , p7 )
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 , p7 )
return block ( p1 , p2 , p3 , p4 , p5 , p6 , p7 )
return runBlocking { block ( p1 , p2 , p3 , p4 , p5 , p6 , p7 ) }
}
}
}
}
@ -164,7 +169,7 @@ class LambdaEightParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, in T7,
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) -> R {
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 , p7 : T7 , p8 : T8 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 , p7 : T7 , p8 : T8 ) : R {
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 )
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 )
return block ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 )
return runBlocking { block ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) }
}
}
}
}
@ -174,7 +179,7 @@ class LambdaNineParamsRecorder<in T1, in T2, in T3, in T4, in T5, in T6, in T7,
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) -> R {
) : LambdaRecorder ( ensureNeverCalled ) , ( T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) -> R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 , p7 : T7 , p8 : T8 , p9 : T9 ) : R {
override fun invoke ( p1 : T1 , p2 : T2 , p3 : T3 , p4 : T4 , p5 : T5 , p6 : T6 , p7 : T7 , p8 : T8 , p9 : T9 ) : R {
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 )
onInvoke ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 )
return block ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 )
return runBlocking { block ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 ) }
}
}
}
}