test_class.declarator: mResult
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Object mResult;
test_class.type: Object
test_class.var_name: mResult
test_class.declarator: mSender
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private MessageSender mSender;
test_class.type: MessageSender
test_class.var_name: mSender
test_class.declarator: mListener
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ResultListener<Object> mListener;
test_class.type: ResultListener<Object>
test_class.var_name: mListener
test_class.declarator: mListenerWithExceptionTemplate
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private TestResultListener mListenerWithExceptionTemplate;
test_class.type: TestResultListener
test_class.var_name: mListenerWithExceptionTemplate
test_class.declarator: mMessageCaptor
test_class.modifier: @Captor
      private
test_class.original_string: @Captor
      private ArgumentCaptor<Message<ResultListener<Object>, Void>> mMessageCaptor;
test_class.type: ArgumentCaptor<Message<ResultListener<Object>, Void>>
test_class.var_name: mMessageCaptor
test_class.declarator: mException
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ActorInvokeException mException;
test_class.type: ActorInvokeException
test_class.var_name: mException
test_class.file: actors-library/src/test/java/com/truecaller/androidactors/ResultListenerProxyTest.java
test_class.identifier: ResultListenerProxyTest
test_case.body: @SuppressWarnings("ThrowableNotThrown")
      @Test
      public void onResult_setExceptionTemplate_withTemplateProvider() throws Exception {
          ResultListenerProxy proxy = new ResultListenerProxy(mSender);
          proxy.onResult(mResult);
  
          Mockito.verify(mSender).deliver(mMessageCaptor.capture());
  
          Message<ResultListener<Object>, Void> message = mMessageCaptor.getValue();
          Assert.assertNotNull(message);
  
          Mockito.doReturn(mException).when(mListenerWithExceptionTemplate).exception();
  
          message.invoke(mListenerWithExceptionTemplate);
          Mockito.verify(mListenerWithExceptionTemplate).onResult(mResult);
  
          Assert.assertSame(mException, message.exception());
      }
test_case.class_method_signature: ResultListenerProxyTest.onResult_setExceptionTemplate_withTemplateProvider()
test_case.full_signature: @SuppressWarnings("ThrowableNotThrown") @Test public void onResult_setExceptionTemplate_withTemplateProvider()
test_case.identifier: onResult_setExceptionTemplate_withTemplateProvider
test_case.invocations: onResult deliver verify capture getValue assertNotNull exception when doReturn invoke onResult verify assertSame exception
test_case.modifiers: @SuppressWarnings("ThrowableNotThrown") @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void onResult_setExceptionTemplate_withTemplateProvider()
focal_class.declarator: mMessageSender
focal_class.modifier: private final
focal_class.original_string: private final MessageSender mMessageSender;
focal_class.type: MessageSender
focal_class.var_name: mMessageSender
focal_class.file: actors-library/src/main/java/com/truecaller/androidactors/ResultListenerProxy.java
focal_class.identifier: ResultListenerProxy
focal_class.interfaces: implements ResultListener
focal_class.class_method_signature: ResultListenerProxy.ResultListenerProxy(MessageSender messageSender)
focal_class.full_signature:   ResultListenerProxy(MessageSender messageSender)
focal_class.identifier: ResultListenerProxy
focal_class.parameters: (MessageSender messageSender)
focal_class.signature:  ResultListenerProxy(MessageSender messageSender)
focal_class.class_method_signature: ResultListenerProxy.onResult(@Nullable Object result)
focal_class.full_signature: @Override public void onResult(@Nullable Object result)
focal_class.identifier: onResult
focal_class.modifiers: @Override public
focal_class.parameters: (@Nullable Object result)
focal_class.return: void
focal_class.signature: void onResult(@Nullable Object result)
focal_method.body: @Override
      public void onResult(@Nullable Object result) {
          mMessageSender.deliver(new ResultListenerMessage(new ActorMethodInvokeException(), result));
      }
focal_method.class_method_signature: ResultListenerProxy.onResult(@Nullable Object result)
focal_method.full_signature: @Override public void onResult(@Nullable Object result)
focal_method.identifier: onResult
focal_method.invocations: deliver
focal_method.modifiers: @Override public
focal_method.parameters: (@Nullable Object result)
focal_method.return: void
focal_method.signature: void onResult(@Nullable Object result)