Capture arguments from a mocked service call

If you like to get the arguments of a mocked service call SERVICEMETHOD you can use this

    ArgumentCaptor<AnyClass> captor = ArgumentCaptor.forClass(AnyClass.class);
    verify(service, times(1)).SERVICEMETHOD(captor.capture());
    AnyClass anyObject = captor.getValue();

Now you can have a look if anyObject is setup as expected.

For methods with multipe Arguments, just add suitable ArgumentCaptors.

    ArgumentCaptor<AnyClass1> captor1 = ArgumentCaptor.forClass(AnyClass1.class);
    ArgumentCaptor<AnyClass2> captor2 = ArgumentCaptor.forClass(AnyClass2.class);
    ArgumentCaptor<AnyClass3> captor3 = ArgumentCaptor.forClass(AnyClass3.class);

    verify(service, times(1)).SERVICEMETHOD(captor1.capture(), captor2.capture(), captor3.capture());

    AnyClass1 anyObject1 = captor1.getValue();
    AnyClass2 anyObject2 = captor2.getValue();
    AnyClass3 anyObject3 = captor3.getValue();