diff --git a/.travis.yml b/.travis.yml index 3a873bef..3010e255 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,11 +7,11 @@ matrix: - jdk: oraclejdk7 env: TERM=dumb MOCK_MAKER=mock-maker-inline KOTLIN_VERSION=1.0.6 - jdk: oraclejdk7 - env: TERM=dumb MOCK_MAKER=mock-maker-inline KOTLIN_VERSION=1.1.0-beta-18 + env: TERM=dumb MOCK_MAKER=mock-maker-inline KOTLIN_VERSION=1.1.0-beta-38 - jdk: oraclejdk8 env: TERM=dumb KOTLIN_VERSION=1.0.6 - jdk: oraclejdk8 - env: TERM=dumb KOTLIN_VERSION=1.1.0-beta-18 + env: TERM=dumb KOTLIN_VERSION=1.1.0-beta-38 env: diff --git a/build.gradle b/build.gradle index 4bda7472..f4da8369 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'com.github.ben-manes.versions' version '0.13.0' + id 'com.github.ben-manes.versions' version '0.14.0' } apply from: 'gradle/scripts/tagging.gradle' diff --git a/mockito-kotlin/build.gradle b/mockito-kotlin/build.gradle index 31799629..8debd61e 100644 --- a/mockito-kotlin/build.gradle +++ b/mockito-kotlin/build.gradle @@ -28,7 +28,7 @@ repositories { dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" - compile "org.mockito:mockito-core:2.6.5" + compile "org.mockito:mockito-core:2.7.5" /* Tests */ testCompile "junit:junit:4.12" 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 379d2186..07e20179 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 @@ -224,6 +224,8 @@ fun OngoingStubbing.doThrow(t: Throwable, vararg ts: Throwable): OngoingS infix fun OngoingStubbing.doThrow(t: KClass): OngoingStubbing = thenThrow(t.java) fun OngoingStubbing.doThrow(t: KClass, vararg ts: KClass): OngoingStubbing = thenThrow(t.java, *ts.map { it.java }.toTypedArray()) +infix fun OngoingStubbing.doAnswer(answer: (InvocationOnMock) -> T?): OngoingStubbing = thenAnswer(answer) + fun mockingDetails(toInspect: Any): MockingDetails = Mockito.mockingDetails(toInspect)!! fun never(): VerificationMode = Mockito.never()!! fun notNull(): T? = Mockito.notNull() diff --git a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt index ce57d620..237a2248 100644 --- a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt +++ b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt @@ -488,6 +488,34 @@ class MockitoTest : TestBase() { } } + @Test + fun testMockStubbing_doAnswer() { + /* Given */ + val mock = mock { + on { stringResult() } doAnswer { "result" } + } + + /* When */ + val result = mock.stringResult() + + /* Then */ + expect(result).toBe("result") + } + + @Test + fun testMockStubbing_doAnswer_withArgument() { + /* Given */ + val mock = mock { + on { stringResult(any()) } doAnswer { "${it.arguments[0]}-result" } + } + + /* When */ + val result = mock.stringResult("argument") + + /* Then */ + expect(result).toBe("argument-result") + } + @Test fun mock_withCustomName() { /* Given */