示例#1
0
        public void Execute_CustomDirective_ResolvesCorrectly()
        {
            var     schema = new TestSchema();
            dynamic result = schema.Execute("{ foo @onField }");

            Assert.AreEqual("replacedByDirective", result.data.foo);
        }
示例#2
0
        public void ResolvesCatModelForTwoFragments()
        {
            var schema = new TestSchema();

            var result = schema.Execute(@"
            {
                animal {
                    __typename
                    ... on Cat {
                        id
                        name
                        whatDoesTheCatSay
                    }
                    ... on Dog {
                        id
                        name
                        whatDoesTheDogSay
                    }
                }
            }
            ");

            Assert.AreEqual("Cat", result.data.animal.__typename);
            Assert.AreEqual(1, result.data.animal.id);
            Assert.AreEqual("Mourek", result.data.animal.name);
            Assert.AreEqual("Meow", result.data.animal.whatDoesTheCatSay);
        }
示例#3
0
        public void CorrectlyIntrospectsUnionType()
        {
            /*
             * kind must return __TypeKind.UNION.
             * name must return a String.
             * description may return a String or null.
             * possibleTypes returns the list of types that can be represented within this union. They must be object types.
             * All other fields must return null.
             */
            var schema = new TestSchema();

            var result = schema.Execute(@"
            {
              __type(name: " + "\"TestUnion\"" + @") {
                name
                description
                kind
                possibleTypes {
                    name
                }
                interfaces {
                    name
                }
                fields {
                    name
                }
                inputFields {
                    name
                }
                ofType {
                    name
                }
              }
            }
            ");

            Assert.AreEqual("TestUnion", result.data.__type.name);
            Assert.AreEqual("Some union description", result.data.__type.description);
            Assert.AreEqual("UNION", result.data.__type.kind);
            Assert.AreEqual("Dog", ((IEnumerable <dynamic>)result.data.__type.possibleTypes).ElementAt(0).name);
            Assert.AreEqual("Cat", ((IEnumerable <dynamic>)result.data.__type.possibleTypes).ElementAt(1).name);
            Assert.IsNull(result.data.__type.interfaces);
            Assert.IsNull(result.data.__type.fields);
            Assert.IsNull(result.data.__type.inputFields);
            Assert.IsNull(result.data.__type.ofType);
        }
示例#4
0
        public void CanReturnDataFromResolver()
        {
            var schema = new TestSchema();

            var result = schema.Execute(@"
            {
                animal {
                    __typename
                    ... on Cat {
                        id
                        name
                        whatDoesTheCatSay
                    }
                }
            }
            ");

            Assert.AreEqual("Cat", result.data.animal.__typename);
            Assert.AreEqual(1, result.data.animal.id);
            Assert.AreEqual("Mourek", result.data.animal.name);
            Assert.AreEqual("Meow", result.data.animal.whatDoesTheCatSay);
        }
示例#5
0
        public void ResolvesUnknownTypeToNull()
        {
            var schema = new TestSchema();

            var result = schema.Execute(@"
            {
                unionReturningInvalidType {
                    __typename
                    ... on Cat {
                        id
                        name
                        whatDoesTheCatSay
                    }
                    ... on Dog {
                        id
                        name
                        whatDoesTheDogSay
                    }
                }
            }
            ");

            Assert.AreEqual(null, result.data.unionReturningInvalidType);
        }