Pinq\Tests\Integration\Analysis\BasicExpressionAnalysisTest::testCasts PHP Метод

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

public testCasts ( )
    public function testCasts()
    {
        $values = [INativeType::TYPE_STRING => 'abc', INativeType::TYPE_INT => -34, INativeType::TYPE_BOOL => true, INativeType::TYPE_DOUBLE => -4.2454, INativeType::TYPE_NULL => null, INativeType::TYPE_ARRAY => [222, '']];
        foreach ($values as $value) {
            $variableType = ['var' => $this->typeSystem->getTypeFromValue($value)];
            if (!is_array($value)) {
                $this->assertReturnsNativeType(function () {
                    (string) $var;
                }, INativeType::TYPE_STRING, $variableType);
            }
            $this->assertReturnsNativeType(function () {
                (int) $var;
            }, INativeType::TYPE_INT, $variableType);
            $this->assertReturnsNativeType(function () {
                (bool) $var;
            }, INativeType::TYPE_BOOL, $variableType);
            $this->assertReturnsNativeType(function () {
                (double) $var;
            }, INativeType::TYPE_DOUBLE, $variableType);
            $this->assertReturnsNativeType(function () {
                (array) $var;
            }, INativeType::TYPE_ARRAY, $variableType);
            $this->assertReturnsObjectType(function () {
                (object) $var;
            }, 'stdClass', $variableType);
        }
    }