title: Using Multiple ArgumentMatchers on the same mock
body: <p>I am trying to do this using Mockito on a Mock:<br/>
  When Mock.someMethod(..) is called with argument1 --> return result1<br/>
  When Mock.someMethod(..) is called with argument2 --> return result2<br/>
  When Mock.someMethod(..) is called with argument3 --> return result3</p>
  
  <pre><code>    when(mock.method(Matchers.argThat(new MyMatcher1() {
  
          @Override
          public boolean matches(Object arg0) {
                     // comparision logic
          }
      }))).thenReturn(result1);
  
      when(mock.method(Matchers.argThat(new MyMatcher2() {
  
          @Override
          public boolean matches(Object arg0) {
                     // comparision logic
          }
      }))).thenReturn(result2);
  
      when(mock.method(Matchers.argThat(new MyMatcher3() {
  
          @Override
          public boolean matches(Object arg0) {
                     // comparision logic
          }
      }))).thenReturn(result3);
  </code></pre>
  
  <p>But Mockito stubs the first one correctly, but on the second one it throws NullPointer exception as it for some reason tries to run the Matcher with null agrument. I am not sure if it is supported.</p>
  
  <p>If this is not the correct way, how to achieve this with Mockito? Thanks.</p>