Наследование: extends Youshido\GraphQL\Type\InterfaceType\AbstractInterfaceType
Пример #1
0
 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'));
 }