Пример #1
0
 public void output_types_are_invalid()
 {
     ShouldFailRule(_ =>
     {
         _.Query = @"
           query Foo($a: Dog, $b: [[CatOrDog!]]!, $c: Pet) {
             field(a: $a, b: $b, c: $c)
           }
         ";
         _.Error(
             message: VariablesAreInputTypesError.UndefinedVarMessage("a", "Dog"),
             line: 2,
             column: 29);
         _.Error(
             message: VariablesAreInputTypesError.UndefinedVarMessage("b", "[[CatOrDog!]]!"),
             line: 2,
             column: 38);
         _.Error(
             message: VariablesAreInputTypesError.UndefinedVarMessage("c", "Pet"),
             line: 2,
             column: 58);
         _.Error(
             message: "Variable '$b' is invalid. No value provided for a non-null variable.",
             line: 2,
             column: 38);
     });
 }
Пример #2
0
        public void TestVariableObject_InvalidType(string param)
        {
            var error1 = new ValidationError(null, VariablesAreInputTypesError.NUMBER,
                                             VariablesAreInputTypesError.UndefinedVarMessage("arg", "abcdefg"))
            {
                Code = "VARIABLES_ARE_INPUT_TYPES"
            };

            error1.AddLocation(1, 7);
            var error2 = new ValidationError(null, KnownTypeNamesError.NUMBER,
                                             KnownTypeNamesError.UnknownTypeMessage("abcdefg", null))
            {
                Code = "KNOWN_TYPE_NAMES"
            };

            error2.AddLocation(1, 13);
            var error3 = new ValidationError(null, "5.8",
                                             "Variable \u0027$arg\u0027 is invalid. Variable has unknown type \u0027abcdefg\u0027")
            {
                Code = "INVALID_VALUE"
            };

            error3.AddLocation(1, 7);
            var expected = CreateQueryResult(null, new ExecutionErrors {
                error1, error2, error3
            }, executed: false);

            AssertQueryIgnoreErrors("query($arg: abcdefg) { test1 (arg: $arg) }", expected, inputs: $"{{ \"arg\": {param} }}".ToInputs(), expectedErrorCount: 3, renderErrors: true);
        }