/** * Returns whether or not a call has been made in the associated call recorder. * * @todo Maybe rename this to findMatchedCalls? * * @param Phake_CallRecorder_CallExpectation $expectation * * @return Phake_CallRecorder_VerifierResult */ public function verifyCall(Phake_CallRecorder_CallExpectation $expectation) { $matcher = new Phake_Matchers_MethodMatcher($expectation->getMethod(), $expectation->getArgumentMatchers()); $calls = $this->recorder->getAllCalls(); $matchedCalls = array(); $methodNonMatched = array(); $obj_interactions = false; foreach ($calls as $call) { /* @var $call Phake_CallRecorder_Call */ if ($call->getObject() === $expectation->getObject()) { $obj_interactions = true; $args = $call->getArguments(); if ($matcher->matches($call->getMethod(), $args)) { $matchedCalls[] = $this->recorder->getCallInfo($call); } elseif ($call->getMethod() == $expectation->getMethod()) { $methodNonMatched[] = $call->__toString(); } } } $verifierModeResult = $expectation->getVerifierMode()->verify($matchedCalls); if (!$verifierModeResult->getVerified()) { $additions = ''; if (!$obj_interactions) { $additions .= ' In fact, there are no interactions with this mock.'; } if (count($methodNonMatched)) { $additions .= "\nOther Invocations:\n " . implode("\n ", $methodNonMatched); } return new Phake_CallRecorder_VerifierResult(false, array(), $expectation->__toString() . ', ' . $verifierModeResult->getFailureDescription() . '.' . $additions); } return new Phake_CallRecorder_VerifierResult(true, $matchedCalls); }
public function testStaticToString() { /** @var $mock Phake_IMock */ $mock = Phake::mock('Phake_IMock'); $matcher1 = Phake::mock('Phake_Matchers_IChainableArgumentMatcher'); Phake::when($matcher1)->__toString()->thenReturn('100'); $matcher2 = Phake::mock('Phake_Matchers_IChainableArgumentMatcher'); Phake::when($matcher2)->__toString()->thenReturn('200'); Phake::when($matcher1)->getNextMatcher->thenReturn($matcher2); $verifierMode = Phake::mock('Phake_CallRecorder_IVerifierMode'); Phake::when($verifierMode)->__toString()->thenReturn('2 times'); $expectation = new Phake_CallRecorder_CallExpectation(get_class($mock), 'method', $matcher1, $verifierMode); $this->assertEquals("Expected Phake_IMock::method(100, 200) to be called 2 times", $expectation->__toString()); }
public function testToString() { /** @var $mock Phake_IMock */ $mock = $this->getMock('Phake_IMock'); $matcher1 = Phake::mock('Phake_Matchers_IArgumentMatcher'); Phake::when($matcher1)->__toString()->thenReturn('100'); $matcher2 = Phake::mock('Phake_Matchers_IArgumentMatcher'); Phake::when($matcher2)->__toString()->thenReturn('200'); $verifierMode = Phake::mock('Phake_CallRecorder_IVerifierMode'); Phake::when($verifierMode)->__toString()->thenReturn('2 times'); $mockReader = Phake::mock('Phake_MockReader'); Phake::when($mockReader)->getName($this->anything())->thenReturn('Phake_IMock'); $expectation = new Phake_CallRecorder_CallExpectation($mock, 'method', array($matcher1, $matcher2), $verifierMode, $mockReader); $this->assertEquals("Expected Phake_IMock->method(100, 200) to be called 2 times", $expectation->__toString()); }