Pinq\Tests\Integration\ExpressionTrees\MiscInterpreterTest::testParameterExpressions PHP Метод

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

    public function testParameterExpressions()
    {
        $this->assertParametersAre(function ($i) {
        }, [O\Expression::parameter('i')]);
        $this->assertParametersAre(function ($i, $foo) {
        }, [O\Expression::parameter('i'), O\Expression::parameter('foo')]);
        $this->assertParametersAre(function ($i = null) {
        }, [O\Expression::parameter('i', null, O\Expression::value(null))]);
        $this->assertParametersAre(function ($i = 'bar') {
        }, [O\Expression::parameter('i', null, O\Expression::value('bar'))]);
        $this->assertParametersAre(function (\DateTime $i) {
        }, [O\Expression::parameter('i', '\\DateTime')]);
        $this->assertParametersAre(function (self $i) {
        }, [O\Expression::parameter('i', '\\' . __CLASS__)]);
        $this->assertParametersAre(function (parent $i) {
        }, [O\Expression::parameter('i', '\\' . get_parent_class())]);
        $this->assertParametersAre(function (MiscInterpreterTest $i) {
        }, [O\Expression::parameter('i', '\\' . __CLASS__)]);
        $this->assertParametersAre(function (ParameterClassTest $i) {
        }, [O\Expression::parameter('i', '\\' . __NAMESPACE__ . '\\ParameterClassTest')]);
        $this->assertParametersAre(function (namespace\ParameterClassTest $i) {
        }, [O\Expression::parameter('i', '\\' . __NAMESPACE__ . '\\ParameterClassTest')]);
        $this->assertParametersAre(function (&$i) {
        }, [O\Expression::parameter('i', null, null, true)]);
        $this->assertParametersAre(function (\stdClass &$i = null, array $array = ['foo']) {
        }, [O\Expression::parameter('i', '\\stdClass', O\Expression::value(null), true), O\Expression::parameter('array', 'array', O\Expression::value(['foo']))]);
        $this->assertParametersAre(function (callable &$v = null) {
        }, [O\Expression::parameter('v', 'callable', O\Expression::value(null), true)]);
        $this->assertParametersAre(function ($v = [1, 2, 3, 'test' => 'foo', [2 => 'boo', '']]) {
        }, [O\Expression::parameter('v', null, O\Expression::value([1, 2, 3, 'test' => 'foo', [2 => 'boo', '']]))]);
    }