getLastValue() public static method

public static getLastValue ( )
Example #1
0
 public function testGetLastValue()
 {
     $this->variable(sut::getLastValue())->isNull()->if($asserter = new sut(new asserter\generator()))->and($asserter->setWith(function () use(&$exception) {
         $exception = new \exception();
         throw $exception;
     }))->then->object(sut::getLastValue())->isIdenticalTo($exception)->and($asserter->setWith(function () use(&$otherException) {
         $otherException = new \exception();
         throw $otherException;
     }))->then->object(sut::getLastValue())->isIdenticalTo($otherException);
 }
Example #2
0
 public function setAssertionManager(test\assertion\manager $assertionManager = null)
 {
     $this->assertionManager = $assertionManager ?: new test\assertion\manager();
     $test = $this;
     $this->assertionManager->setHandler('when', function ($mixed) use($test) {
         if ($mixed instanceof \closure) {
             $mixed();
         }
         return $test;
     })->setHandler('dump', function () use($test) {
         call_user_func_array('var_dump', func_get_args());
         return $test;
     })->setPropertyHandler('exception', function () {
         return asserters\exception::getLastValue();
     });
     $returnTest = function () use($test) {
         return $test;
     };
     $this->assertionManager->setHandler('assert', $returnTest)->setHandler('if', $returnTest)->setHandler('and', $returnTest)->setHandler('then', $returnTest)->setHandler('given', $returnTest);
     $asserterGenerator = $this->asserterGenerator;
     $this->assertionManager->setDefaultHandler(function ($asserter, $arguments) use($asserterGenerator) {
         return $asserterGenerator->getAsserterInstance($asserter, $arguments);
     });
     return $this;
 }
Example #3
0
 public function setAssertionManager(test\assertion\manager $assertionManager = null)
 {
     $this->assertionManager = $assertionManager ?: new test\assertion\manager();
     $test = $this;
     $this->assertionManager->setHandler('when', function ($mixed) use($test) {
         if ($mixed instanceof \closure) {
             $mixed();
         }
         return $test;
     })->setHandler('assert', function ($case = null) use($test) {
         $test->stopCase();
         if ($case !== null) {
             $test->startCase($case);
         }
         return $test;
     })->setHandler('mockGenerator', function () use($test) {
         return $test->getMockGenerator();
     })->setHandler('mockClass', function ($class, $mockNamespace = null, $mockClass = null) use($test) {
         $test->getMockGenerator()->generate($class, $mockNamespace, $mockClass);
         return $test;
     })->setHandler('mockTestedClass', function ($mockNamespace = null, $mockClass = null) use($test) {
         $test->getMockGenerator()->generate($test->getTestedClassName(), $mockNamespace, $mockClass);
         return $test;
     })->setHandler('dump', function () use($test) {
         if ($test->debugModeIsEnabled() === true) {
             call_user_func_array('var_dump', func_get_args());
         }
         return $test;
     })->setHandler('stop', function () use($test) {
         if ($test->debugModeIsEnabled() === true) {
             throw new test\exceptions\stop();
         }
         return $test;
     })->setHandler('executeOnFailure', function ($callback) use($test) {
         if ($test->debugModeIsEnabled() === true) {
             $test->executeOnFailure($callback);
         }
         return $test;
     })->setHandler('dumpOnFailure', function ($variable) use($test) {
         if ($test->debugModeIsEnabled() === true) {
             $test->executeOnFailure(function () use($variable) {
                 var_dump($variable);
             });
         }
         return $test;
     })->setPropertyHandler('function', function () use($test) {
         return $test->getPhpMocker();
     })->setPropertyHandler('exception', function () {
         return asserters\exception::getLastValue();
     });
     $mockGenerator = $this->mockGenerator;
     $this->assertionManager->setPropertyHandler('nextMockedMethod', function () use($mockGenerator) {
         return $mockGenerator->getMethod();
     });
     $returnTest = function () use($test) {
         return $test;
     };
     $this->assertionManager->setHandler('if', $returnTest)->setHandler('and', $returnTest)->setHandler('then', $returnTest)->setHandler('given', $returnTest);
     $returnMockController = function (mock\aggregator $mock) {
         return $mock->getMockController();
     };
     $this->assertionManager->setHandler('calling', $returnMockController)->setHandler('ƒ', $returnMockController)->setHandler('resetMock', function (mock\aggregator $mock) {
         return $mock->getMockController()->resetCalls();
     })->setHandler('resetFunction', function (test\adapter\invoker $invoker) {
         php\mocker::getAdapter()->resetCalls($invoker->getFunction());
         return $invoker;
     });
     $this->assertionManager->setHandler('resetAdapter', function (test\adapter $adapter) {
         return $adapter->resetCalls();
     });
     $asserterGenerator = $this->asserterGenerator;
     $this->assertionManager->setHandler('define', function () use($asserterGenerator) {
         return $asserterGenerator;
     })->setDefaultHandler(function ($asserter, $arguments) use($asserterGenerator) {
         return $asserterGenerator->getAsserterInstance($asserter, $arguments);
     });
     return $this;
 }
Example #4
0
 public function setAssertionManager(test\assertion\manager $assertionManager = null)
 {
     $this->assertionManager = $assertionManager ?: new test\assertion\manager();
     $test = $this;
     $this->assertionManager->setHandler('when', function ($mixed) use($test) {
         if ($mixed instanceof \closure) {
             $mixed($test);
         }
         return $test;
     })->setHandler('assert', function ($case = null) use($test) {
         $test->stopCase();
         if ($case !== null) {
             $test->startCase($case);
         }
         return $test;
     })->setHandler('mockGenerator', function () use($test) {
         return $test->getMockGenerator();
     })->setHandler('mockClass', function ($class, $mockNamespace = null, $mockClass = null) use($test) {
         $test->getMockGenerator()->generate($class, $mockNamespace, $mockClass);
         return $test;
     })->setHandler('mockTestedClass', function ($mockNamespace = null, $mockClass = null) use($test) {
         $test->getMockGenerator()->generate($test->getTestedClassName(), $mockNamespace, $mockClass);
         return $test;
     })->setHandler('dump', function () use($test) {
         if ($test->debugModeIsEnabled() === true) {
             call_user_func_array('var_dump', func_get_args());
         }
         return $test;
     })->setHandler('stop', function () use($test) {
         if ($test->debugModeIsEnabled() === true) {
             throw new test\exceptions\stop();
         }
         return $test;
     })->setHandler('executeOnFailure', function ($callback) use($test) {
         if ($test->debugModeIsEnabled() === true) {
             $test->executeOnFailure($callback);
         }
         return $test;
     })->setHandler('dumpOnFailure', function ($variable) use($test) {
         if ($test->debugModeIsEnabled() === true) {
             $test->executeOnFailure(function () use($variable) {
                 var_dump($variable);
             });
         }
         return $test;
     })->setPropertyHandler('function', function () use($test) {
         return $test->getPhpMocker();
     })->setPropertyHandler('exception', function () {
         return asserters\exception::getLastValue();
     });
     $mockGenerator = $this->mockGenerator;
     $this->assertionManager->setPropertyHandler('nextMockedMethod', function () use($mockGenerator) {
         return $mockGenerator->getMethod();
     });
     $returnTest = function () use($test) {
         return $test;
     };
     $this->assertionManager->setHandler('if', $returnTest)->setHandler('and', $returnTest)->setHandler('then', $returnTest)->setHandler('given', $returnTest)->setMethodHandler('define', $returnTest)->setMethodHandler('let', $returnTest);
     $returnMockController = function (mock\aggregator $mock) {
         return $mock->getMockController();
     };
     $this->assertionManager->setHandler('calling', $returnMockController)->setHandler('ƒ', $returnMockController);
     $this->assertionManager->setHandler('resetMock', function (mock\aggregator $mock) {
         return $mock->getMockController()->resetCalls();
     })->setHandler('resetAdapter', function (test\adapter $adapter) {
         return $adapter->resetCalls();
     });
     $phpMocker = $this->phpMocker;
     $this->assertionManager->setHandler('resetFunction', function (test\adapter\invoker $invoker) use($phpMocker) {
         $phpMocker->resetCalls($invoker->getFunction());
         return $invoker;
     });
     $assertionAliaser = $this->assertionManager->getAliaser();
     $this->assertionManager->setPropertyHandler('define', function () use($assertionAliaser, $test) {
         return $assertionAliaser;
     })->setHandler('from', function ($class) use($assertionAliaser, $test) {
         $assertionAliaser->from($class);
         return $test;
     })->setHandler('use', function ($target) use($assertionAliaser, $test) {
         $assertionAliaser->alias($target);
         return $test;
     })->setHandler('as', function ($alias) use($assertionAliaser, $test) {
         $assertionAliaser->to($alias);
         return $test;
     });
     $asserterGenerator = $this->asserterGenerator;
     $this->assertionManager->setDefaultHandler(function ($keyword, $arguments) use($asserterGenerator, $assertionAliaser, &$lastAsserter) {
         static $lastAsserter = null;
         if ($lastAsserter !== null) {
             $realKeyword = $assertionAliaser->resolveAlias($keyword, get_class($lastAsserter));
             if ($realKeyword !== $keyword) {
                 return call_user_func_array(array($lastAsserter, $realKeyword), $arguments);
             }
         }
         return $lastAsserter = $asserterGenerator->getAsserterInstance($keyword, $arguments);
     });
     $this->assertionManager->use('phpArray')->as('array')->use('phpArray')->as('in')->use('phpClass')->as('class')->use('phpFunction')->as('function')->use('phpFloat')->as('float')->use('phpString')->as('string')->use('calling')->as('method');
     return $this;
 }
Example #5
0
 public function testGetLastValue()
 {
     $this->variable(asserters\exception::getLastValue())->isNull()->if($this->newTestedInstance->setWith(function () use(&$exception) {
         $exception = new \exception();
         throw $exception;
     }))->then->object(asserters\exception::getLastValue())->isIdenticalTo($exception)->if($this->testedInstance->setWith(function () use(&$otherException) {
         $otherException = new \exception();
         throw $otherException;
     }))->then->object(asserters\exception::getLastValue())->isIdenticalTo($otherException);
 }