GraphQL\Tests\Type\EnumTypeTest::setUp PHP Method

setUp() public method

public setUp ( )
    public function setUp()
    {
        $ColorType = new EnumType(['name' => 'Color', 'values' => ['RED' => ['value' => 0], 'GREEN' => ['value' => 1], 'BLUE' => ['value' => 2]]]);
        $simpleEnum = new EnumType(['name' => 'SimpleEnum', 'values' => ['ONE', 'TWO', 'THREE']]);
        $Complex1 = ['someRandomFunction' => function () {
        }];
        $Complex2 = new \ArrayObject(['someRandomValue' => 123]);
        $ComplexEnum = new EnumType(['name' => 'Complex', 'values' => ['ONE' => ['value' => $Complex1], 'TWO' => ['value' => $Complex2]]]);
        $QueryType = new ObjectType(['name' => 'Query', 'fields' => ['colorEnum' => ['type' => $ColorType, 'args' => ['fromEnum' => ['type' => $ColorType], 'fromInt' => ['type' => Type::int()], 'fromString' => ['type' => Type::string()]], 'resolve' => function ($value, $args) {
            if (isset($args['fromInt'])) {
                return $args['fromInt'];
            }
            if (isset($args['fromString'])) {
                return $args['fromString'];
            }
            if (isset($args['fromEnum'])) {
                return $args['fromEnum'];
            }
        }], 'simpleEnum' => ['type' => $simpleEnum, 'args' => ['fromName' => ['type' => Type::string()], 'fromValue' => ['type' => Type::string()]], 'resolve' => function ($value, $args) {
            if (isset($args['fromName'])) {
                return $args['fromName'];
            }
            if (isset($args['fromValue'])) {
                return $args['fromValue'];
            }
        }], 'colorInt' => ['type' => Type::int(), 'args' => ['fromEnum' => ['type' => $ColorType], 'fromInt' => ['type' => Type::int()]], 'resolve' => function ($value, $args) {
            if (isset($args['fromInt'])) {
                return $args['fromInt'];
            }
            if (isset($args['fromEnum'])) {
                return $args['fromEnum'];
            }
        }], 'complexEnum' => ['type' => $ComplexEnum, 'args' => ['fromEnum' => ['type' => $ComplexEnum, 'defaultValue' => $Complex1], 'provideGoodValue' => ['type' => Type::boolean()], 'provideBadValue' => ['type' => Type::boolean()]], 'resolve' => function ($value, $args) use($Complex1, $Complex2) {
            if (!empty($args['provideGoodValue'])) {
                // Note: this is one of the references of the internal values which
                // ComplexEnum allows.
                return $Complex2;
            }
            if (!empty($args['provideBadValue'])) {
                // Note: similar shape, but not the same *reference*
                // as Complex2 above. Enum internal values require === equality.
                return new \ArrayObject(['someRandomValue' => 123]);
            }
            return $args['fromEnum'];
        }]]]);
        $MutationType = new ObjectType(['name' => 'Mutation', 'fields' => ['favoriteEnum' => ['type' => $ColorType, 'args' => ['color' => ['type' => $ColorType]], 'resolve' => function ($value, $args) {
            return isset($args['color']) ? $args['color'] : null;
        }]]]);
        $SubscriptionType = new ObjectType(['name' => 'Subscription', 'fields' => ['subscribeToEnum' => ['type' => $ColorType, 'args' => ['color' => ['type' => $ColorType]], 'resolve' => function ($value, $args) {
            return isset($args['color']) ? $args['color'] : null;
        }]]]);
        $this->Complex1 = $Complex1;
        $this->Complex2 = $Complex2;
        $this->ComplexEnum = $ComplexEnum;
        $this->schema = new Schema(['query' => $QueryType, 'mutation' => $MutationType, 'subscription' => $SubscriptionType]);
    }