From 210c73300d12fc50cd158e8b0d1b9550ec8887b5 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Mon, 19 Dec 2016 15:12:31 +0100 Subject: [PATCH] Add BDDMockito functions --- .../com/nhaarman/mockito_kotlin/BDDMockito.kt | 13 +++ .../src/test/kotlin/test/BDDMockitoTest.kt | 103 ++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/BDDMockito.kt create mode 100644 mockito-kotlin/src/test/kotlin/test/BDDMockitoTest.kt diff --git a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/BDDMockito.kt b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/BDDMockito.kt new file mode 100644 index 00000000..203232d8 --- /dev/null +++ b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/BDDMockito.kt @@ -0,0 +1,13 @@ +package com.nhaarman.mockito_kotlin + +import org.mockito.BDDMockito + +fun given(methodCall: T): BDDMockito.BDDMyOngoingStubbing = BDDMockito.given(methodCall) +fun given(methodCall: () -> T) = given(methodCall()) + +fun then(mock: T): BDDMockito.Then = BDDMockito.then(mock) + +infix fun BDDMockito.BDDMyOngoingStubbing.willAnswer(value: () -> T): BDDMockito.BDDMyOngoingStubbing = willAnswer { value() } +infix fun BDDMockito.BDDMyOngoingStubbing.willReturn(value: () -> T): BDDMockito.BDDMyOngoingStubbing = willReturn(value()) +infix fun BDDMockito.BDDMyOngoingStubbing.willThrow(value: () -> Throwable): BDDMockito.BDDMyOngoingStubbing = willThrow(value()) + diff --git a/mockito-kotlin/src/test/kotlin/test/BDDMockitoTest.kt b/mockito-kotlin/src/test/kotlin/test/BDDMockitoTest.kt new file mode 100644 index 00000000..1df22392 --- /dev/null +++ b/mockito-kotlin/src/test/kotlin/test/BDDMockitoTest.kt @@ -0,0 +1,103 @@ +package test + +import com.nhaarman.expect.expect +import com.nhaarman.mockito_kotlin.* +import org.junit.Test + +class BDDMockitoTest { + + @Test + fun given_willReturn_properlyStubs() { + /* Given */ + val mock = mock() + + /* When */ + given(mock.stringResult()).willReturn("Test") + + /* Then */ + expect(mock.stringResult()).toBe("Test") + } + + @Test + fun givenLambda_willReturn_properlyStubs() { + /* Given */ + val mock = mock() + + /* When */ + given { mock.stringResult() }.willReturn("Test") + + /* Then */ + expect(mock.stringResult()).toBe("Test") + } + + @Test + fun given_willReturnLambda_properlyStubs() { + /* Given */ + val mock = mock() + + /* When */ + given(mock.stringResult()).willReturn { "Test" } + + /* Then */ + expect(mock.stringResult()).toBe("Test") + } + + @Test + fun givenLambda_willReturnLambda_properlyStubs() { + /* Given */ + val mock = mock() + + /* When */ + given { mock.stringResult() } willReturn { "Test" } + + /* Then */ + expect(mock.stringResult()).toBe("Test") + } + + @Test + fun given_willAnswer_properlyStubs() { + /* Given */ + val mock = mock() + + /* When */ + given(mock.stringResult()).willAnswer { "Test" } + + /* Then */ + expect(mock.stringResult()).toBe("Test") + } + + @Test + fun given_willAnswerInfix_properlyStubs() { + /* Given */ + val mock = mock() + + /* When */ + given(mock.stringResult()) willAnswer { "Test" } + + /* Then */ + expect(mock.stringResult()).toBe("Test") + } + + @Test(expected = IllegalStateException::class) + fun given_willThrowInfix_properlyStubs() { + /* Given */ + val mock = mock() + + /* When */ + given(mock.stringResult()) willThrow { IllegalStateException() } + mock.stringResult() + } + + @Test + fun then() { + /* Given */ + val mock = mock() + whenever(mock.stringResult()).thenReturn("Test") + + /* When */ + mock.stringResult() + + /* Then */ + then(mock).should().stringResult() + } +}