function it_should_return_empty_string_if_argument_counts_do_not_match(UnexpectedCallException $exception, ObjectProphecy $objectProphecy, MethodProphecy $prophecy, ArgumentsWildcard $wildcard)
 {
     $exception->getObjectProphecy()->willReturn($objectProphecy);
     $exception->getArguments()->willReturn(array('a', 'b'));
     $exception->getMethodName()->shouldBeCalled();
     $objectProphecy->getMethodProphecies(Argument::any())->willReturn(array($prophecy));
     $objectProphecy->findProphecyMethodCalls(Argument::any(), Argument::any())->willReturn(array());
     $prophecy->getArgumentsWildcard()->willReturn($wildcard);
     $wildcard->getTokens()->willReturn(array('a'));
     $this->presentDifference($exception)->shouldReturn('');
 }
 /**
  * @param MethodProphecy[] $methodProphecies
  * @param UnexpectedCallException $exception
  *
  * @return MethodProphecy
  */
 private function findFirstUnexpectedArgumentsCallProphecy(array $methodProphecies, UnexpectedCallException $exception)
 {
     $objectProphecy = $exception->getObjectProphecy();
     foreach ($methodProphecies as $methodProphecy) {
         $calls = $objectProphecy->findProphecyMethodCalls($exception->getMethodName(), $methodProphecy->getArgumentsWildcard());
         if (count($calls)) {
             continue;
         }
         return $methodProphecy;
     }
 }