mageekguy\atoum\tests\units\mock\generator::testGenerate PHP Метод

testGenerate() публичный Метод

public testGenerate ( )
    public function testGenerate()
    {
        $this->if($generator = new testedClass())->then->exception(function () use($generator) {
            $generator->generate('');
        })->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Class name \'\' is invalid')->exception(function () use($generator) {
            $generator->generate('\\');
        })->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Class name \'\\\' is invalid')->exception(function () use($generator, &$class) {
            $generator->generate($class = '\\' . uniqid() . '\\');
        })->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Class name \'' . $class . '\' is invalid')->if($adapter = new atoum\test\adapter())->and($adapter->class_exists = false)->and($adapter->interface_exists = false)->and($generator->setAdapter($adapter))->and($class = uniqid('unknownClass'))->then->object($generator->generate($class))->isIdenticalTo($generator)->class('\\mock\\' . $class)->hasNoParent()->hasInterface('mageekguy\\atoum\\mock\\aggregator')->if($class = '\\' . uniqid('unknownClass'))->then->object($generator->generate($class))->isIdenticalTo($generator)->class('\\mock' . $class)->hasNoParent()->hasInterface('mageekguy\\atoum\\mock\\aggregator')->if($adapter->class_exists = true)->and($class = uniqid())->then->exception(function () use($generator, $class) {
            $generator->generate($class);
        })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Class \'\\mock\\' . $class . '\' already exists')->if($class = '\\' . uniqid())->then->exception(function () use($generator, $class) {
            $generator->generate($class);
        })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Class \'\\mock' . $class . '\' already exists')->if($class = uniqid())->and($adapter->class_exists = function ($arg) use($class) {
            return $arg === '\\' . $class;
        })->and($reflectionClassController = new mock\controller())->and($reflectionClassController->__construct = function () {
        })->and($reflectionClassController->isFinal = true)->and($reflectionClassController->isInterface = false)->and($reflectionClass = new \mock\reflectionClass(uniqid(), $reflectionClassController))->and($generator->setReflectionClassFactory(function () use($reflectionClass) {
            return $reflectionClass;
        }))->then->exception(function () use($generator, $class) {
            $generator->generate($class);
        })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Class \'\\' . $class . '\' is final, unable to mock it')->if($class = '\\' . uniqid())->and($adapter->class_exists = function ($arg) use($class) {
            return $arg === $class;
        })->then->exception(function () use($generator, $class) {
            $generator->generate($class);
        })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Class \'' . $class . '\' is final, unable to mock it')->if($reflectionClassController->isFinal = false)->and($generator = new testedClass())->then->object($generator->generate(__CLASS__))->isIdenticalTo($generator)->class('\\mock\\' . __CLASS__)->hasParent(__CLASS__)->hasInterface('mageekguy\\atoum\\mock\\aggregator')->if($generator = new testedClass())->and($generator->shunt('__construct'))->then->boolean($generator->isShunted('__construct'))->isTrue()->object($generator->generate('reflectionMethod'))->isIdenticalTo($generator)->boolean($generator->isShunted('__construct'))->isFalse()->if($generator = new testedClass())->and($generator->shuntParentClassCalls())->then->object($generator->generate('reflectionParameter'))->isIdenticalTo($generator)->boolean($generator->callsToParentClassAreShunted())->isFalse();
    }
generator