コード例 #1
0
ファイル: mock.php プロジェクト: ronan-gloo/atoum
 public function testOnce()
 {
     $this->if($asserter = new asserters\mock($generator = new asserter\generator()))->then->exception(function () use($asserter) {
         $asserter->once();
     })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Mock is undefined')->if($asserter->setWith($mock = new \mock\mageekguy\atoum\tests\units\asserters\dummy()))->then->exception(function () use($asserter) {
         $asserter->once();
     })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Called method is undefined')->if($asserter->call('foo'))->then->exception(function () use($asserter) {
         $asserter->once();
     })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('method %s is called 0 time instead of 1'), $asserter->getCall()))->if($call = new php\call('foo', null, $mock))->and($mock->foo($usedArg = uniqid()))->then->object($asserter->once())->isIdenticalTo($asserter)->if($mock->foo($otherUsedArg = uniqid()))->then->exception(function () use($asserter) {
         $asserter->once();
     })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('method %s is called 2 times instead of 1'), $asserter->getCall()) . PHP_EOL . '[1] ' . $call->setArguments(array($usedArg)) . PHP_EOL . '[2] ' . $call->setArguments(array($otherUsedArg)))->if($mock->getMockController()->resetCalls())->and($asserter->withArguments($usedArg = uniqid()))->and($mock->foo($usedArg))->then->object($asserter->once())->isIdenticalTo($asserter)->if($asserter->withArguments($arg = uniqid()))->then->exception(function () use($asserter) {
         $asserter->once();
     })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('method %s is called 0 time instead of 1'), $asserter->getCall()) . PHP_EOL . '[1] ' . $call->setArguments(array($usedArg)))->if($asserter = new asserters\mock($generator = new asserter\generator()))->and($asserter->setWith($mock = new \mock\mageekguy\atoum\tests\units\asserters\dummy()))->and($asserter->beforeMethodCall('bar')->call('foo'))->then->exception(function () use($asserter) {
         $asserter->once();
     })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('method %s is called 0 time instead of 1'), $asserter->getCall()));
 }