Elgg\Di\ServiceProviderTest::testPropertyType PHP Метод

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

public testPropertyType ( $name, $type )
    public function testPropertyType($name, $type)
    {
        $sp = _elgg_services();
        $non_shared_names = ['queryCounter'];
        $skipped_names = [];
        if (isset($skipped_names[$name])) {
            $this->markTestSkipped($skipped_names[$name]);
            return;
        }
        $obj1 = $sp->{$name};
        $obj2 = $sp->{$name};
        // support $type like "Foo\Bar|Baz|null"
        $passed = false;
        foreach (explode('|', $type) as $test_type) {
            if ($test_type === 'null') {
                if ($obj1 === null) {
                    $passed = true;
                }
            } elseif ($obj1 instanceof $test_type) {
                $passed = true;
            }
        }
        $this->assertTrue($passed, "\$obj1 did not match type {$type}");
        if (in_array($name, $non_shared_names)) {
            $this->assertNotSame($obj1, $obj2);
        } else {
            $this->assertSame($obj1, $obj2);
        }
    }