X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftest%2FMockotlin.kt;h=d1ab1fc073ae03180d96ce7e08aad5d7e8e8ee4a;hp=b30e98c2ef431a0c46cae314fb3d33260921918b;hb=03c29a3838e23ed0b9731ca4d84cf58038c30dfe;hpb=8dd998006410b230392c0df06a29f95be1571b6f diff --git a/src/test/kotlin/net/pterodactylus/sone/test/Mockotlin.kt b/src/test/kotlin/net/pterodactylus/sone/test/Mockotlin.kt index b30e98c..d1ab1fc 100644 --- a/src/test/kotlin/net/pterodactylus/sone/test/Mockotlin.kt +++ b/src/test/kotlin/net/pterodactylus/sone/test/Mockotlin.kt @@ -3,16 +3,27 @@ package net.pterodactylus.sone.test import com.google.inject.Module import org.mockito.ArgumentCaptor import org.mockito.Mockito +import org.mockito.invocation.InvocationOnMock +import org.mockito.stubbing.OngoingStubbing inline fun mock(): T = Mockito.mock(T::class.java)!! inline fun mockBuilder(): T = Mockito.mock(T::class.java, Mockito.RETURNS_SELF)!! inline fun deepMock(): T = Mockito.mock(T::class.java, Mockito.RETURNS_DEEP_STUBS)!! +inline fun selfMock(): T = Mockito.mock(T::class.java, Mockito.RETURNS_SELF)!! inline fun capture(): ArgumentCaptor = ArgumentCaptor.forClass(T::class.java) +inline fun OngoingStubbing<*>.doThrow(): OngoingStubbing<*> = thenThrow(E::class.java) + inline fun bind(implementation: T): Module = Module { it!!.bind(T::class.java).toInstance(implementation) } inline fun bindMock(): Module = - Module { it!!.bind(T::class.java).toInstance(mock()) } + Module { it!!.bind(T::class.java).toInstance(mock()) } + +inline fun whenever(methodCall: T) = Mockito.`when`(methodCall)!! + +inline fun OngoingStubbing.thenReturnMock(): OngoingStubbing = this.thenReturn(mock()) + +operator fun InvocationOnMock.get(index: Int): T = getArgument(index) -inline fun whenever(methodCall: T) = Mockito.`when`(methodCall) +inline fun argumentCaptor(): ArgumentCaptor = ArgumentCaptor.forClass(T::class.java)!!