control() public method

public control ( mageekguy\atoum\mock\aggregator $mock )
$mock mageekguy\atoum\mock\aggregator
示例#1
0
 public function testGetMockedClassCodeForUnknownClass()
 {
     $this->if($generator = new testedClass())->and($adapter = new atoum\test\adapter())->and($adapter->class_exists = false)->and($generator->setAdapter($adapter))->then->string($generator->getMockedClassCode($unknownClass = uniqid()))->isEqualTo('namespace mock {' . PHP_EOL . 'final class ' . $unknownClass . ' implements \\mageekguy\\atoum\\mock\\aggregator' . PHP_EOL . '{' . PHP_EOL . $this->getMockControllerMethods() . "\t" . 'public function __construct(\\mageekguy\\atoum\\mock\\controller $mockController = null)' . PHP_EOL . "\t" . '{' . PHP_EOL . "\t\t" . 'if ($mockController === null)' . PHP_EOL . "\t\t" . '{' . PHP_EOL . "\t\t\t" . '$mockController = \\mageekguy\\atoum\\mock\\controller::get();' . PHP_EOL . "\t\t" . '}' . PHP_EOL . "\t\t" . 'if ($mockController !== null)' . PHP_EOL . "\t\t" . '{' . PHP_EOL . "\t\t\t" . '$this->setMockController($mockController);' . PHP_EOL . "\t\t" . '}' . PHP_EOL . "\t\t" . '$this->getMockController()->disableMethodChecking();' . PHP_EOL . "\t\t" . 'if (isset($this->getMockController()->__construct) === true)' . PHP_EOL . "\t\t" . '{' . PHP_EOL . "\t\t\t" . '$this->getMockController()->invoke(\'__construct\', func_get_args());' . PHP_EOL . "\t\t" . '}' . PHP_EOL . "\t" . '}' . PHP_EOL . "\t" . 'public function __call($methodName, $arguments)' . PHP_EOL . "\t" . '{' . PHP_EOL . "\t\t" . 'if (isset($this->getMockController()->{$methodName}) === true)' . PHP_EOL . "\t\t" . '{' . PHP_EOL . "\t\t\t" . '$return = $this->getMockController()->invoke($methodName, $arguments);' . PHP_EOL . "\t\t\t" . 'return $return;' . PHP_EOL . "\t\t" . '}' . PHP_EOL . "\t\t" . 'else' . PHP_EOL . "\t\t" . '{' . PHP_EOL . "\t\t\t" . '$this->getMockController()->addCall($methodName, $arguments);' . PHP_EOL . "\t\t" . '}' . PHP_EOL . "\t" . '}' . PHP_EOL . "\t" . 'public static function getMockedMethods()' . PHP_EOL . "\t" . '{' . PHP_EOL . "\t\t" . 'return ' . var_export(array('__call'), true) . ';' . PHP_EOL . "\t" . '}' . PHP_EOL . '}' . PHP_EOL . '}')->if($unknownClass = __NAMESPACE__ . '\\dummy')->and($generator->generate($unknownClass))->and($mockedUnknownClass = '\\mock\\' . $unknownClass)->and($dummy = new $mockedUnknownClass())->and($dummyController = new atoum\mock\controller())->and($dummyController->notControlNextNewMock())->and($calls = new \mock\mageekguy\atoum\test\adapter\calls())->and($dummyController->setCalls($calls))->and($dummyController->control($dummy))->then->when(function () use($dummy) {
         $dummy->bar();
     })->mock($calls)->call('addCall')->withArguments(new atoum\test\adapter\call('bar', array(), new decorators\addClass($dummy)))->once()->when(function () use($dummy) {
         $dummy->bar();
     })->mock($calls)->call('addCall')->withArguments(new atoum\test\adapter\call('bar', array(), new decorators\addClass($dummy)))->twice();
 }
示例#2
0
 public function testReset()
 {
     $this->if($mockController = new testedClass())->then->variable($mockController->getMockClass())->isNull()->array($mockController->getInvokers())->isEmpty()->array($mockController->getCalls())->isEmpty()->object($mockController->reset())->isIdenticalTo($mockController)->variable($mockController->getMockClass())->isNull()->array($mockController->getInvokers())->isEmpty()->array($mockController->getCalls())->isEmpty()->if($adapter = new atoum\test\adapter())->and($adapter->class_exists = true)->and($mock = new \mock\mageekguy\atoum\tests\units\mock\controller($adapter))->and($mockController->control($mock))->and($mockController->{$method = __FUNCTION__} = function () {
     })->and($mockController->invoke($method, array()))->then->variable($mockController->getMockClass())->isNotNull()->array($mockController->getInvokers())->isNotEmpty()->array($mockController->getCalls())->isNotEmpty()->object($mockController->reset())->isIdenticalTo($mockController)->variable($mockController->getMockClass())->isNull()->array($mockController->getInvokers())->isEmpty()->array($mockController->getCalls())->isEmpty();
 }
示例#3
0
 public function testGetIterator()
 {
     $this->if($iterator = new testedClass($controller = new mock\controller()))->then->object($iterator->getIterator())->isEqualTo(new \arrayIterator($iterator->getMethods()))->if($controller->control(new \mock\mageekguy\atoum\tests\units\mock\controller\foo()))->then->object($iterator->getIterator())->isEqualTo(new \arrayIterator($iterator->getMethods()));
 }
示例#4
0
 public function testGetForMock()
 {
     $this->if($mockController = new testedClass())->and($mockController->control($mock = new \mock\object()))->then->object(testedClass::getForMock($mock))->isIdenticalTo($mockController)->if($otherMockController = new testedClass())->and($otherMockController->control($otherMock = new \mock\object()))->then->object(testedClass::getForMock($mock))->isIdenticalTo($mockController)->object(testedClass::getForMock($otherMock))->isIdenticalTo($otherMockController);
 }