Youshido\Tests\Library\Type\InterfaceTypeTest::testInterfaceMethods PHP Метод

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

    public function testInterfaceMethods()
    {
        $interface = new TestInterfaceType();
        $this->assertEquals($interface->getNamedType(), $interface->getType());
        $nameField = new Field(['name' => 'name', 'type' => new StringType()]);
        $nameField->getName();
        $this->assertEquals(['name' => $nameField], $interface->getFields());
        $object = new ObjectType(['name' => 'Test', 'fields' => ['name' => new StringType()], 'interfaces' => [$interface]]);
        $this->assertEquals([$interface], $object->getInterfaces());
        $this->assertTrue($interface->isValidValue($object));
        $this->assertFalse($interface->isValidValue('invalid object'));
        $this->assertEquals($interface->serialize($object), $object);
        $interfaceType = new InterfaceType(['name' => 'UserInterface', 'fields' => ['name' => new StringType()], 'resolveType' => function ($object) {
            return $object;
        }]);
        $this->assertEquals('UserInterface', $interfaceType->getName());
        $this->assertEquals($object, $interfaceType->resolveType($object));
        $this->assertTrue($interfaceType->isValidValue($object));
        $this->assertFalse($interfaceType->isValidValue('invalid object'));
    }