Make `same` return non-null type
diff --git a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt
index 6d62267..e53e993 100644
--- a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt
+++ b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt
@@ -236,7 +236,7 @@
fun <T> reset(vararg mocks: T) = Mockito.reset(*mocks)
-fun <T> same(value: T): T? = Mockito.same(value) ?: value
+fun <T> same(value: T): T = Mockito.same(value) ?: value
inline fun <reified T : Any> spy(): T = Mockito.spy(T::class.java)!!
fun <T> spy(value: T): T = Mockito.spy(value)!!
diff --git a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt
index d5055a7..c897c93 100644
--- a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt
+++ b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt
@@ -983,4 +983,28 @@
verify(this).nullableString(isA<String>())
}
}
+
+ @Test
+ fun same_withNonNullArgument() {
+ mock<Methods>().apply {
+ string("")
+ verify(this).string(same(""))
+ }
+ }
+
+ @Test
+ fun same_withNullableNonNullArgument() {
+ mock<Methods>().apply {
+ nullableString("")
+ verify(this).nullableString(same(""))
+ }
+ }
+
+ @Test
+ fun same_withNullArgument() {
+ mock<Methods>().apply {
+ nullableString(null)
+ verify(this).nullableString(same(null))
+ }
+ }
}
\ No newline at end of file