GraphQL\Tests\Type\DefinitionTest::testInterfaceTypeAllowsRecursiveDefinitions PHP Method

testInterfaceTypeAllowsRecursiveDefinitions() public method

    public function testInterfaceTypeAllowsRecursiveDefinitions()
    {
        $called = false;
        $interface = new InterfaceType(['name' => 'SomeInterface', 'fields' => function () use(&$interface, &$called) {
            $called = true;
            return ['value' => ['type' => Type::string()], 'nested' => ['type' => $interface]];
        }]);
        $query = new ObjectType(['name' => 'Query', 'fields' => ['test' => ['type' => $interface]]]);
        $schema = new Schema(['query' => $query]);
        $this->assertTrue($called);
        $this->assertSame($interface, $schema->getType('SomeInterface'));
        $this->assertEquals(count($interface->getFields()), 2);
        $this->assertSame($interface->getField('nested')->getType(), $interface);
        $this->assertSame($interface->getField('value')->getType(), Type::string());
    }