Youshido\Tests\Schema\ProcessorTest::testEnumType PHP Метод

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

public testEnumType ( )
    public function testEnumType()
    {
        $processor = new Processor(new Schema(['query' => new ObjectType(['name' => 'RootQuery', 'fields' => ['test' => ['args' => ['argument1' => new NonNullType(new EnumType(['name' => 'TestEnumType', 'values' => [['name' => 'VALUE1', 'value' => 'val1'], ['name' => 'VALUE2', 'value' => 'val2']]]))], 'type' => new StringType(), 'resolve' => function ($value, $args) {
            return $args['argument1'];
        }]]])]));
        $processor->processPayload('{ test }');
        $response = $processor->getResponseData();
        $this->assertEquals(['data' => ['test' => null], 'errors' => [['message' => 'Require "argument1" arguments to query "test"']]], $response);
        $processor->getExecutionContext()->clearErrors();
        $processor->processPayload('{ alias: test() }');
        $response = $processor->getResponseData();
        $this->assertEquals(['data' => ['alias' => null], 'errors' => [['message' => 'Require "argument1" arguments to query "test"']]], $response);
        $processor->getExecutionContext()->clearErrors();
        $processor->processPayload('{ alias: test(argument1: VALUE4) }');
        $response = $processor->getResponseData();
        $this->assertEquals(['data' => ['alias' => null], 'errors' => [['message' => 'Not valid type for argument "argument1" in query "test"', 'locations' => [['line' => 1, 'column' => 15]]]]], $response);
        $processor->getExecutionContext()->clearErrors();
        $processor->processPayload('{ alias: test(argument1: VALUE1) }');
        $response = $processor->getResponseData();
        $this->assertEquals(['data' => ['alias' => 'val1']], $response);
    }