Best Mockito-kotlin code snippet using org.mockito.kotlin.Matchers.argWhere
CurrencyTradeControllerTest.kt
Source:CurrencyTradeControllerTest.kt  
...6import java.time.LocalDateTime7import java.util.Optional8import org.junit.jupiter.api.Test9import org.mockito.BDDMockito10import org.mockito.kotlin.argWhere11import org.springframework.beans.factory.annotation.Autowired12import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest13import org.springframework.boot.test.mock.mockito.MockBean14import org.springframework.http.MediaType15import org.springframework.test.web.servlet.MockMvc16import org.springframework.test.web.servlet.ResultMatcher.matchAll17import org.springframework.test.web.servlet.request.MockMvcRequestBuilders18import org.springframework.test.web.servlet.result.MockMvcResultMatchers19@WebMvcTest(CurrencyTradeController::class)20class CurrencyTradeControllerTest {21    @Autowired22    private lateinit var client: MockMvc23    @MockBean24    private lateinit var currencyTradeService: CurrencyTradeService25    @MockBean26    private lateinit var mapper: CurrencyTradeMapper27    @Test28    fun `gets all currency trades`() {29        val currencyTrades = listOf(30            CurrencyTrade(31                1,32                Currency.EUR,33                Currency.BTC,34                TradeType.Buy,35                Money(1000, Currency.EUR),36                0.007,37                Money(3, Currency.EUR),38                LocalDateTime.of(2021, 3, 24, 23, 44),39                Location(4, "MyExchange", "Bestexchange", LocationType.BankAccount)40            ),41            CurrencyTrade(42                2,43                Currency.EUR,44                Currency.BTC,45                TradeType.Buy,46                Money(200, Currency.EUR),47                0.007,48                Money(3, Currency.EUR),49                LocalDateTime.of(2021, 3, 24, 23, 50),50                Location(4, "MyExchange", "Bestexchange", LocationType.BankAccount)51            )52        )53        BDDMockito.given(currencyTradeService.findAll()).willReturn(currencyTrades)54        BDDMockito.given(mapper.toDto(currencyTrades[0])).willCallRealMethod()55        BDDMockito.given(mapper.toDto(currencyTrades[1])).willCallRealMethod()56        client.perform(MockMvcRequestBuilders.get("/trades/currency/"))57            .andExpect(MockMvcResultMatchers.status().isOk)58            .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON))59            .andExpect(60                matchAll(61                    MockMvcResultMatchers.jsonPath("$[0].id").value(1),62                    MockMvcResultMatchers.jsonPath("$[0].baseCurrency").value("EUR"),63                    MockMvcResultMatchers.jsonPath("$[0].quoteCurrency").value("BTC"),64                    MockMvcResultMatchers.jsonPath("$[0].tradeType").value("Buy"),65                    MockMvcResultMatchers.jsonPath("$[0].pricePerBaseUnit.amount").value(1000),66                    MockMvcResultMatchers.jsonPath("$[0].pricePerBaseUnit.currency").value("EUR"),67                    MockMvcResultMatchers.jsonPath("$[0].quantity").value("0.007"),68                    MockMvcResultMatchers.jsonPath("$[0].fee.amount").value(3),69                    MockMvcResultMatchers.jsonPath("$[0].fee.currency").value("EUR"),70                    MockMvcResultMatchers.jsonPath("$[0].dateTraded").value("2021-03-24T23:44:00"),71                    MockMvcResultMatchers.jsonPath("$[0].locationId").value(4)72                )73            )74    }75    @Test76    fun `gets a currency trade by id`() {77        val currencyTrade = CurrencyTrade(78            1,79            Currency.EUR,80            Currency.BTC,81            TradeType.Buy,82            Money(1000, Currency.EUR),83            0.007,84            Money(3, Currency.EUR),85            LocalDateTime.of(2021, 3, 24, 23, 44),86            Location(4, "MyExchange", "Bestexchange", LocationType.BankAccount)87        )88        BDDMockito.given(currencyTradeService.findById(1)).willReturn(Optional.of(currencyTrade))89        BDDMockito.given(mapper.toDto(currencyTrade)).willCallRealMethod()90        client.perform(MockMvcRequestBuilders.get("/trades/currency/1"))91            .andExpect(MockMvcResultMatchers.status().isOk)92            .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON))93            .andExpect(94                matchAll(95                    MockMvcResultMatchers.jsonPath("$.id").value(1),96                    MockMvcResultMatchers.jsonPath("$.baseCurrency").value("EUR"),97                    MockMvcResultMatchers.jsonPath("$.quoteCurrency").value("BTC"),98                    MockMvcResultMatchers.jsonPath("$.tradeType").value("Buy"),99                    MockMvcResultMatchers.jsonPath("$.pricePerBaseUnit.amount").value(1000),100                    MockMvcResultMatchers.jsonPath("$.pricePerBaseUnit.currency").value("EUR"),101                    MockMvcResultMatchers.jsonPath("$.quantity").value("0.007"),102                    MockMvcResultMatchers.jsonPath("$.fee.amount").value(3),103                    MockMvcResultMatchers.jsonPath("$.fee.currency").value("EUR"),104                    MockMvcResultMatchers.jsonPath("$.dateTraded").value("2021-03-24T23:44:00"),105                    MockMvcResultMatchers.jsonPath("$.locationId").value(4)106                )107            )108    }109    @Test110    fun `cannot get a currency trade by id when id does not exist`() {111        BDDMockito.given(currencyTradeService.findById(1)).willReturn(Optional.empty())112        client.perform(MockMvcRequestBuilders.get("/trades/currency/1"))113            .andExpect(MockMvcResultMatchers.status().isBadRequest)114    }115    @Test116    fun `creates a currency trade`() {117        val location = Location(5, "Main", "Bankster", LocationType.BankAccount)118        val currencyTrade = CurrencyTrade(119            1,120            Currency.EUR,121            Currency.BTC,122            TradeType.Buy,123            Money(1000, Currency.EUR),124            0.007,125            Money(3, Currency.EUR),126            LocalDateTime.of(2021, 3, 24, 23, 44),127            location128        )129        BDDMockito.given(currencyTradeService.save(argWhere { it.id == null }))130            .willReturn(currencyTrade)131        client.perform(132            MockMvcRequestBuilders.post("/trades/currency/")133                .contentType(MediaType.APPLICATION_JSON)134                .content(135                    """136                     { "baseCurrency": "EUR", 137                       "quoteCurrency": "BTC",138                       "tradeType": "Sell",139                       "pricePerBaseUnit": { "amount": 20, "currency": "EUR" },140                       "quantity": "1",141                       "fee": { "amount": 0.2, "currency": "EUR" },142                       "dateTraded": "2021-03-24T23:44:00",143                       "locationId": "5" }...EpubContentPresenterTest.kt
Source:EpubContentPresenterTest.kt  
...125        presenter.onStart()126        verify(mockEpubView, timeout(15000)).containerTitle = opf!!.title!!127        presenter.handlePageChanged(2)128        presenter.onStop()129        verify(mockStatementEndpoint, timeout(5000)).storeStatements(argWhere {130            val progressRecorded = it.firstOrNull()?.result?.extensions?.get("https://w3id.org/xapi/cmi5/result/extensions/progress") as? Int131            progressRecorded != null && progressRecorded > 0132        }, anyOrNull(), eq(contentEntry.contentEntryUid), eq(selectedClazzUid))133        argumentCaptor<List<String>>().apply {134            verify(mockEpubView, timeout(20000)).spineUrls = capture()135            val client = HttpClient()136            runBlocking {137                firstValue.forEachIndexed {index, url ->138                    Assert.assertTrue("Spine itemk $index ends with expected url",139                            url.endsWith(opf!!.linearSpineHREFs[index]))140                    val responseStatusCode = client.get<HttpStatement>(url).execute {141                        it.status.value142                    }143                    Assert.assertEquals("Making HTTP request to spine url status code is 200 OK", 200,...MatchersTest.kt
Source:MatchersTest.kt  
...163    fun listArgWhere() {164        mock<Methods>().apply {165            closedList(listOf(Closed(), Closed()))166            verify(this).closedList(167                  argWhere {168                      it.size == 2169                  }170            )171        }172    }173    @Test174    fun listArgCheck() {175        mock<Methods>().apply {176            closedList(listOf(Closed(), Closed()))177            verify(this).closedList(178                  check {179                      expect(it.size).toBe(2)180                  }181            )...mockito_kotlin.kt
Source:mockito_kotlin.kt  
...3import com.natpryce.hamkrest.equalTo4import com.nhaarman.mockito_kotlin.any5import com.nhaarman.mockito_kotlin.argForWhich6import com.nhaarman.mockito_kotlin.argThat7import com.nhaarman.mockito_kotlin.argWhere8import com.nhaarman.mockito_kotlin.argumentCaptor9import com.nhaarman.mockito_kotlin.doReturn10import com.nhaarman.mockito_kotlin.doThrow11import com.nhaarman.mockito_kotlin.eq12import com.nhaarman.mockito_kotlin.mock13import com.nhaarman.mockito_kotlin.times14import com.nhaarman.mockito_kotlin.verify15import com.nhaarman.mockito_kotlin.verifyNoMoreInteractions16import com.nhaarman.mockito_kotlin.whenever17import org.testng.annotations.Test18/*19    https://github.com/nhaarman/mockito-kotlin/wiki/Mocking-and-verifying20*/21@Test class MockitoKotlinTest {22    // private lateinit var sharedMock: Service23    fun `simplest noParamYesReturn`() {24        val mockService = mock<Service>()25        whenever(mockService.noParamYesReturn()).thenReturn("mockReturn")26        assertThat(mockService.noParamYesReturn(), equalTo("mockReturn"))27    }28    fun `simplest yesParamYesReturn`() {29        val mockService = mock<Service>()30        whenever(mockService.yesParamYesReturn(any())).thenReturn("mockReturnWithParam")31        assertThat(mockService.yesParamYesReturn("will be ignored"), equalTo("mockReturnWithParam"))32    }33//    fun `more complex mock params`() {34    fun `use lambdas via KStubbing, noParamYesReturn`() {35        val mockService = mock<Service> {36            // KStubbing<T>.() -> Unit37            on { noParamYesReturn() } doReturn "mockReturn" // doReturn is an infix function38        }39        println("mockService.noParamYesReturn() => ${mockService.noParamYesReturn()}")40        // mockService.noParamNoReturn() // ... will make the verifyNoMoreInteractions fail41        verify(mockService).noParamYesReturn()42        verifyNoMoreInteractions(mockService)43    }44    fun `simplest yesParamNoReturn`() {45        val mock: Service = mock()46        val givenParam = "testParam"47        mock.yesParamNoReturn(givenParam)48        verify(mock).yesParamNoReturn(any()) // for arrays use: anyArray()49        verify(mock).yesParamNoReturn(givenParam)50        verify(mock).yesParamNoReturn(eq(givenParam))51        verify(mock).yesParamNoReturn(argWhere { it.startsWith("test") })52    }53    @Test(expectedExceptions = arrayOf(AnswerException::class))54    fun `answer`() {55        val mockService = mock<Service>()56//        whenever(mockService.noParamNoReturn()).thenAnswer { invocation: InvocationOnMock ->57//            invocation.callRealMethod()58//            invocation.method59//            invocation.arguments60//            invocation.mock as Service61//        }62        whenever(mockService.noParamNoReturn()).doThrow(AnswerException::class)63        mockService.noParamNoReturn()64    }65    private class AnswerException : RuntimeException()...KotlinJsCompilationTests.kt
Source:KotlinJsCompilationTests.kt  
...119			pluginOptions = listOf(PluginOption("myPluginId", "test_option_name", "test_value"))120			commandLineProcessors = listOf(cliProcessor)121		}.compile()122		assertThat(result.exitCode).isEqualTo(ExitCode.OK)123		verify(cliProcessor, atLeastOnce()).processOption(argWhere<AbstractCliOption> { it.optionName == "test_option_name" }, eq("test_value"), any())124		verify(cliProcessor, never()).processOption(argWhere<AbstractCliOption> { it.optionName == "test_option_name" }, not(eq("test_value")), any())125		verify(cliProcessor, never()).processOption(argWhere<AbstractCliOption> { it.optionName != "test_option_name" }, any(), any())126	}127}...FriendListPresenterSpec.kt
Source:FriendListPresenterSpec.kt  
1package com.worldventures.dreamtrips.social.ui.friends.presenter2import com.nhaarman.mockito_kotlin.any3import com.nhaarman.mockito_kotlin.argWhere4import com.nhaarman.mockito_kotlin.mock5import com.nhaarman.mockito_kotlin.spy6import com.nhaarman.mockito_kotlin.verify7import com.worldventures.core.janet.SessionActionPipeCreator8import com.worldventures.core.test.common.Injector9import com.worldventures.dreamtrips.social.service.users.friend.command.GetFriendsCommand10import com.worldventures.dreamtrips.social.service.users.friend.delegate.FriendsListStorageDelegate11import com.worldventures.dreamtrips.social.service.users.request.command.ActOnFriendRequestCommand12import io.techery.janet.command.test.BaseContract13import io.techery.janet.command.test.MockCommandActionService14import org.jetbrains.spek.api.dsl.SpecBody15import org.jetbrains.spek.api.dsl.describe16import org.jetbrains.spek.api.dsl.it17import org.mockito.ArgumentMatchers18import org.mockito.internal.verification.VerificationModeFactory19import kotlin.test.assertTrue20class FriendListPresenterSpec : AbstractUserListPresenterSpec(FriendListTestSuite()) {21   class FriendListTestSuite : TestSuite<FriendListComponents>(FriendListComponents()) {22      override fun specs(): SpecBody.() -> Unit = {23         with(components) {24            describe("Friend List Presenter") {25               beforeEachTest {26                  init()27                  linkPresenterAndView()28               }29               describe("Refresh data") {30                  it("Presenter should reload data") {31                     verify(presenter).reload()32                  }33                  it("View should receive new users data") {34                     verify(view).refreshUsers(argWhere { it.size == friends.size }, any())35                  }36                  it("Apply filters should notify view with new user data and contains input args") {37                     presenter.reloadWithFilter(circles[0], 1)38                     verify(view, VerificationModeFactory.times(2))39                           .refreshUsers(argWhere { it.size == friends.size }, any())40                     assertTrue { presenter.selectedCircle?.id == circles[0].id }41                     assertTrue { presenter.position == 1 }42                  }43                  it("Search should notify view with new user data") {44                     val query = "friend name"45                     presenter.search(query)46                     verify(view, VerificationModeFactory.times(2))47                           .refreshUsers(argWhere { it.size == friends.size }, any())48                  }49                  it("Empty query shouldn't initiate receive new part of data") {50                     val query = ""51                     presenter.search(query)52                     verify(view, VerificationModeFactory.times(1))53                           .refreshUsers(argWhere { it.size == friends.size }, any())54                  }55                  it("Removing friend should notify view by data without it user") {56                     presenter.unfriend(user)57                     verify(view, VerificationModeFactory.times(2))58                           .refreshUsers(argWhere { it.indexOf(user) == -1 }, any())59                  }60               }61               describe("Show filters") {62                  it("Presenter should notify view to open filters") {63                     presenter.onFilterClicked()64                     verify(view).showFilters(argWhere { it.size == circles.size + 1 /*select all circle*/ },65                           ArgumentMatchers.anyInt())66                  }67               }68            }69         }70      }71   }72   class FriendListComponents : AbstractUserListComponents<FriendListPresenter, FriendListPresenter.View>() {73      override fun onInit(injector: Injector, pipeCreator: SessionActionPipeCreator) {74         presenter = spy(FriendListPresenter())75         view = mock()76         injector.apply {77            registerProvider(FriendsListStorageDelegate::class.java, {78               FriendsListStorageDelegate(friendInteractor, friendStorageInteractor, circleInteractor, profileInteractor)...Matchers.kt
Source:Matchers.kt  
...86 * `null` values will never evaluate to `true`.87 *88 * @param predicate A function that returns `true` when given [T] matches the predicate.89 */90inline fun <reified T : Any> argWhere(noinline predicate: (T) -> Boolean): T {91    return argThat(predicate)92}93/**94 * Argument that implements the given class.95 */96inline fun <reified T : Any> isA(): T {97    return ArgumentMatchers.isA(T::class.java) ?: createInstance()98}99/**100 * `null` argument.101 */102fun <T : Any> isNull(): T? = ArgumentMatchers.isNull()103/**104 * Not `null` argument....SudoSiteReputationClientGetSiteReputationTest.kt
Source:SudoSiteReputationClientGetSiteReputationTest.kt  
...12import org.junit.After13import org.junit.Test14import org.junit.runner.RunWith15import org.mockito.ArgumentMatchers.anyString16import org.mockito.kotlin.argWhere17import org.mockito.kotlin.doReturn18import org.mockito.kotlin.doThrow19import org.mockito.kotlin.stub20import org.mockito.kotlin.verify21import org.mockito.kotlin.verifyNoMoreInteractions22import org.robolectric.RobolectricTestRunner23import java.util.concurrent.CancellationException24import org.mockito.kotlin.times25/**26 * Test the operation of [SudoSiteReputationClient.getSiteReputation] using mocks and spies.27 *28 * @since 2021-01-0529 */30@RunWith(RobolectricTestRunner::class)31internal class SudoSiteReputationClientGetSiteReputationTest : BaseTests() {32    @After33    fun finish() {34        verifyMocksUsedInClientInit()35        verifyNoMoreInteractions(36            mockContext,37            mockUserClient,38            mockS3Client,39            mockStorageProvider,40            mockReputationProvider41        )42    }43    @Test44    fun `checkIsUrlMalicious() should call reputation provider`() = runBlocking<Unit> {45        siteReputationClient.getSiteReputation("a")46        verify(mockReputationProvider).close()47        verify(mockStorageProvider).read(LAST_UPDATED_FILE)48        verify(mockStorageProvider, times(3)).read(argWhere { it != LAST_UPDATED_FILE })49        verify(mockReputationProvider).checkIsUrlMalicious(anyString())50    }51    @Test52    fun `checkIsUrlMalicious() should throw when ruleset not downloaded`() = runBlocking<Unit> {53        mockStorageProvider.stub {54            on { read(LAST_UPDATED_FILE) } doReturn null55        }56        shouldThrow<SudoSiteReputationException.RulesetNotFoundException> {57            siteReputationClient.getSiteReputation("a")58        }59        verify(mockReputationProvider).close()60        verify(mockStorageProvider).read(LAST_UPDATED_FILE)61    }62    @Test63    fun `checkIsUrlMalicious() should throw when reputation provider throws`() = runBlocking<Unit> {64        mockReputationProvider.stub {65            onBlocking { checkIsUrlMalicious(anyString()) } doThrow SudoSiteReputationException.DataFormatException("mock")66        }67        shouldThrow<SudoSiteReputationException.DataFormatException> {68            siteReputationClient.getSiteReputation("a")69        }70        verify(mockReputationProvider).close()71        verify(mockStorageProvider).read(LAST_UPDATED_FILE)72        verify(mockStorageProvider, times(3)).read(argWhere { it != LAST_UPDATED_FILE })73        verify(mockReputationProvider).checkIsUrlMalicious(anyString())74    }75    @Test76    fun `checkIsUrlMalicious() should not block coroutine cancellation exception`() = runBlocking<Unit> {77        mockReputationProvider.stub {78            onBlocking { checkIsUrlMalicious(anyString()) } doThrow CancellationException("mock")79        }80        shouldThrow<CancellationException> {81            siteReputationClient.getSiteReputation("a")82        }83        verify(mockReputationProvider).close()84        verify(mockStorageProvider).read(LAST_UPDATED_FILE)85        verify(mockStorageProvider, times(3)).read(argWhere { it != LAST_UPDATED_FILE })86        verify(mockReputationProvider).checkIsUrlMalicious(anyString())87    }88    @Test89    fun `ENTITLEMENT_NAME should not be null and should have the correct value`() = runBlocking {90        val entitlementName: String = siteReputationClient.ENTITLEMENT_NAME91        entitlementName shouldNotBe null92        entitlementName shouldBe "sudoplatform.sr.srUserEntitled"93        verify(mockReputationProvider).close()94    }95}...argWhere
Using AI Code Generation
1val mockedList = mock<List<String>>()2mockedList.argWhere { it.size > 5 }3val mockedList = mock<List<String>>()4mockedList.argThat { it.size > 5 }5val mockedList = mock<List<String>>()6mockedList.argEq(listOf("one", "two"))7val mockedList = mock<List<String>>()8mockedList.argForWhich { it.size > 5 }9val mockedList = mock<List<String>>()10mockedList.argCheck { it.size > 5 }11val mockedList = mock<List<String>>()12val capture = argCapture<String>()13mockedList.argCapture(capture)14val mockedList = mock<List<String>>()15val captor = argCaptor<String>()16mockedList.argCaptor(captor)17val mockedList = mock<List<String>>()18val captor = argCaptor<String>()19mockedList.argCaptor(captor)20val mockedList = mock<List<String>>()21val captor = argCaptor<String>()22mockedList.argCaptor(captor)23val mockedList = mock<List<String>>()24val captor = argCaptor<String>()25mockedList.argCaptor(captor)26val mockedList = mock<List<String>>()27val captor = argCaptor<String>()28mockedList.argCaptor(captor)29val mockedList = mock<List<String>>()30val captor = argCaptor<String>()31mockedList.argCaptor(captor)32val mockedList = mock<List<String>>()argWhere
Using AI Code Generation
1    val mockedList = mock<List<String>>()2    whenever(mockedList.argWhere { it.size == 3 }) doReturn "three"3    val mockedList = mock<List<String>>()4    whenever(mockedList.argThat { it.size == 3 }) doReturn "three"5    val mockedList = mock<List<String>>()6    whenever(mockedList[ArgumentMatchers.anyInt()]) doReturn "three"7    val mockedList = mock<List<String>>()8    val captor = argumentCaptor<String>()9    whenever(mockedList.add(captor.capture())) doReturn true10    mockedList.add("one")11    mockedList.add("two")12    val mockedList = mock<List<String>>()13    val captor = ArgumentCaptor.forClass(String::class.java)14    whenever(mockedList.add(captor.capture())) doReturn true15    mockedList.add("one")16    mockedList.add("two")argWhere
Using AI Code Generation
1    val list = mock<List<String>>()2    whenever(list.argWhere { it.size > 2 }).thenReturn("list with size greater than 2")3    val list = mock<List<String>>()4    whenever(list.argThat { it.size > 2 }).thenReturn("list with size greater than 2")5    val list = mock<List<String>>()6    whenever(list.argThat(ArgumentMatchers { it.size > 2 })).thenReturn("list with size greater than 2")7    val list = mock<List<String>>()8    whenever(list.any()).thenReturn("list with size greater than 2")9    val list = mock<List<String>>()10    whenever(list.any(ArgumentMatchers { it.size > 2 })).thenReturn("list with size greater than 2")11    val list = mock<List<String>>()12    whenever(list.any(ArgumentMatchers { it.size > 2 })).thenReturn("list with size greater than 2")13    val list = mock<List<String>>()14    whenever(list.any(ArgumentMatchers { it.size > 2 })).thenReturn("list with size greater than 2")15    val list = mock<List<String>>()16    whenever(list.any(ArgumentMatchers { it.size > 2 })).thenReturn("list with size greater than 2")17    val list = mock<List<String>>()18    whenever(list.any(ArgumentMatchers { it.size > 2 })).thenReturn("list with size greater than 2")19    val list = mock<List<String>>()20    whenever(list.any(ArgumentMatchers { it.size > 2 })).thenReturn("list with size greater than 2")21    val list = mock<List<String>>()22    whenever(list.any(ArgumentMatchers { it.size > 2 })).thenReturn("list withargWhere
Using AI Code Generation
1        val argumentCaptor: ArgumentCaptor<ArgumentCaptorTest.Person> = argumentCaptor()2        Mockito.verify(mock).addPerson(argumentCaptor.capture())3        assertThat(person.name, `is`("John"))4        assertThat(person.age, `is`(30))5    }6    fun testArgumentCaptorWithKotlinArgumentMatcher() {7        val mock: ArgumentCaptorTest.PersonService = mock()8        val person = ArgumentCaptorTest.Person("John", 30)9        mock.addPerson(person)10        Mockito.verify(mock).addPerson(argWhere { it.name == "John" })11    }12    fun testArgumentCaptorWithKotlinArgumentMatcher2() {13        val mock: ArgumentCaptorTest.PersonService = mock()14        val person = ArgumentCaptorTest.Person("John", 30)15        mock.addPerson(person)16        Mockito.verify(mock).addPerson(argWhere { it.name == "John" && it.age == 30 })17    }18    fun testArgumentCaptorWithKotlinArgumentMatcher3() {19        val mock: ArgumentCaptorTest.PersonService = mock()20        val person = ArgumentCaptorTest.Person("John", 30)21        mock.addPerson(person)22        Mockito.verify(mock).addPerson(argWhere { it.name == "John" && it.age == 31 })23    }24    fun testArgumentCaptorWithKotlinArgumentMatcher4() {25        val mock: ArgumentCaptorTest.PersonService = mock()26        val person = ArgumentCaptorTest.Person("John", 30)27        mock.addPerson(person)28        Mockito.verify(mock).addPerson(argWhere { it.name == "John" && it.age == 31 })29    }30    fun testArgumentCaptorWithKotlinArgumentMatcher5() {31        val mock: ArgumentCaptorTest.PersonService = mock()32        val person = ArgumentCaptorTest.Person("John", 30)33        mock.addPerson(person)34        Mockito.verify(mock).addPerson(argWhere { it.name == "John" && it.age == 31 })35    }36    fun testArgumentCaptorWithKotlinArgumentMatcher6() {37        val mock: ArgumentCaptorTest.PersonService = mock()38        val person = ArgumentCaptorTest.Person("John", 30)argWhere
Using AI Code Generation
1val mock = mock<MockedClass>()2val arg = ArgumentCaptor.forClass(String::class.java)3verify(mock).method(arg.argWhere { it.contains("foo") })4val mock = mock<MockedClass>()5val arg = ArgumentCaptor.forClass(String::class.java)6verify(mock).method(arg.argThat { it.contains("foo") })7val mock = mock<MockedClass>()8val arg = ArgumentCaptor.forClass(String::class.java)9verify(mock).method(arg.argThat { it.contains("foo") })10val mock = mock<MockedClass>()11val arg = ArgumentCaptor.forClass(String::class.java)12verify(mock).method(arg.argThat { it.contains("foo") })13val mock = mock<MockedClass>()14val arg = ArgumentCaptor.forClass(String::class.java)15verify(mock).method(arg.argThat { it.contains("foo") })16val mock = mock<MockedClass>()17val arg = ArgumentCaptor.forClass(String::class.java)18verify(mock).method(arg.argThat { it.contains("foo") })19val mock = mock<MockedClass>()20val arg = ArgumentCaptor.forClass(String::class.java)21verify(mock).method(arg.argThat { it.contains("foo") })22val mock = mock<MockedClass>()23val arg = ArgumentCaptor.forClass(String::class.java)24verify(mock).method(arg.argThat { it.contains("foo") })25val mock = mock<MockedClass>()26val arg = ArgumentCaptor.forClass(String::class.java)27verify(mock).method(arg.argThat { it.contains("foo") })28val mock = mock<MockedClass>()29val arg = ArgumentCaptor.forClass(String::class.java)30verify(mock).method(arg.argThat { it.contains("foo") })argWhere
Using AI Code Generation
1    fun `test argWhere`(){2        val mock = mock<SomeInterface>()3        val list = listOf("a", "b", "c")4        whenever(mock.doSomething(argWhere { it == expected })).thenReturn(expected)5        val actual = mock.doSomething(list[1])6        assertEquals(expected, actual)7    }8This file has been truncated. [show original](gist.github.com/rajeevprasanna/...)argWhere
Using AI Code Generation
1val testObject = mock<MyInterface>()2val testString = mock<String>()3whenever(testObject.myMethod(testString)).thenReturn(“test”)4whenever(testObject.myMethod(argWhere { it.length > 5 })).thenReturn(“test2”)5val result = testObject.myMethod(“test”)6val result2 = testObject.myMethod(“testtest”)7assertThat(result).isEqualTo(“test”)8assertThat(result2).isEqualTo(“test2”)9}10}11interface MyInterface {12fun myMethod(s: String): String13}argWhere
Using AI Code Generation
1val predicate = { it: String -> it == "Hello" }2val captor = argumentCaptor<String>()3verify(mock).add(captor.argWhere(predicate))4assertEquals("Hello", captor.firstValue)5val captor = argumentCaptor<String>()6verify(mock).add(captor.isNull())7assertNull(captor.firstValue)8val captor = argumentCaptor<String>()9verify(mock).add(captor.isNotNull())10assertNotNull(captor.firstValue)11val captor = argumentCaptor<String>()12verify(mock).add(captor.isNull())13assertNull(captor.firstValue)14val captor = argumentCaptor<String>()15verify(mock).add(captor.isNotNull())16assertNotNull(captor.firstValue)17val captor = argumentCaptor<String>()18verify(mock).add(captor.isA())19assertNotNull(captor.firstValue)20val captor = argumentCaptor<String>()21verify(mock).add(captor.eq("Hello"))22assertEquals("Hello", captor.firstValue)23val captor = argumentCaptor<String>()24verify(mock).add(captorLearn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
