tree 2df260fdc529abff1de4dc2a4c29a1d294027be2
parent b6c7c8e4200262f95ea14db5f6ad43ad410ef640
author William Escande <wescande@google.com> 1667030366 -0700
committer William Escande <wescande@google.com> 1667030366 -0700

Fix Stub override when argument is already defined

Mockito does not always support stub override.
It fail when a a method has 2 stub with different argument matcher
Ex:
  doReturn(x).when(y).method(any(Foo.class));
  Foo foo = Foo();
  doReturn(x).when(y).method(eq(foo)); <-- sub-match of above

But the following "should" be ok
  Foo foo = Foo();
  doReturn(x).when(y).method(eq(foo));
  Bar bar = Bar();
  doReturn(x).when(y).method(eq(bar)); <-- same scope match as above

Test: atest BluetoothInstrumentationTests
Bug: 256291144
Change-Id: Ie84e4bbe1ed3c479adc2a194972ba67e34839f50
