Exemplo n.º 1
0
        public void InputObjectResolveTest()
        {
            var client = clientFixture.CreateClientFor(@"
                input InputFoo {
                    idField: ID
                    intField: Int
                    nonNullIntField: Int!
                }
                type Query {
                    inputField(inputValueA: Int, inputValueB: InputFoo): Int
                }");

            var source = new IntrospectionSchemaSource(client);
            var schema = source.GetSchema();

            var f = schema.Query.GetField("inputField");

            Assert.Equal(2, f.Arguments.Count);
            Assert.IsAssignableFrom <IntGraphType>(f.Arguments.Find("inputValueA").ResolvedType);

            var it = Assert.IsAssignableFrom <InputObjectGraphType>(f.Arguments.Find("inputValueB").ResolvedType);

            Assert.Equal(3, it.Fields.Count());
            Assert.IsAssignableFrom <IdGraphType>(it.GetField("idField").ResolvedType);
            Assert.IsAssignableFrom <IntGraphType>(it.GetField("intField").ResolvedType);
            var nn = Assert.IsAssignableFrom <NonNullGraphType>(it.GetField("nonNullIntField").ResolvedType);

            Assert.IsAssignableFrom <IntGraphType>(nn.ResolvedType);
        }
Exemplo n.º 2
0
        public void ListTypeResolveTest()
        {
            var client = clientFixture.CreateClientFor(@"type Query { listField: [Float] }");
            var source = new IntrospectionSchemaSource(client);
            var schema = source.GetSchema();

            var nn = Assert.IsAssignableFrom <ListGraphType>(schema.Query.GetField("listField").ResolvedType);

            Assert.IsAssignableFrom <FloatGraphType>(nn.ResolvedType);
        }
Exemplo n.º 3
0
        public void EnumerationResolveTest()
        {
            var client = clientFixture.CreateClientFor(@"
                enum EnumType { FOO BAR }
                type Query{ enumField: EnumType }");

            var source = new IntrospectionSchemaSource(client);
            var schema = source.GetSchema();

            var en = Assert.IsAssignableFrom <EnumerationGraphType>(schema.Query.GetField("enumField").ResolvedType);

            Assert.Equal(2, en.Values.Count());
            Assert.Equal("FOO", en.Values["FOO"].Name);
            Assert.Equal("BAR", en.Values["BAR"].Name);
        }
Exemplo n.º 4
0
        public void ScalarFieldsResolveTest()
        {
            var client = clientFixture.CreateClientFor(@"
                type Query {
                    idField: ID
                    intField: Int
                    floatField: Float
                    stringField: String
                }");

            var source = new IntrospectionSchemaSource(client);
            var schema = source.GetSchema();

            Assert.Equal(4, schema.Query.Fields.Count());
            Assert.IsAssignableFrom <IdGraphType>(schema.Query.GetField("idField").ResolvedType);
            Assert.IsAssignableFrom <IntGraphType>(schema.Query.GetField("intField").ResolvedType);
            Assert.IsAssignableFrom <FloatGraphType>(schema.Query.GetField("floatField").ResolvedType);
            Assert.IsAssignableFrom <StringGraphType>(schema.Query.GetField("stringField").ResolvedType);
        }
Exemplo n.º 5
0
        public void InterfaceImplementationResolveTest()
        {
            var client = clientFixture.CreateClientFor(
                @"
                interface FooInterface {
                    X: String
                }
                type FooImplA implements FooInterface {
                    A: String
                    X: String
                }
                type FooImplB implements FooInterface {
                    B: String
                    X: String
                }
                type Query {
                    foo: FooInterface
                }",
                configure: _ =>
            {
                _.Types.For("FooInterface").ResolveType = obj => throw new NotSupportedException();
            });

            var source = new IntrospectionSchemaSource(client);
            var schema = source.GetSchema();

            var i = Assert.IsAssignableFrom <InterfaceGraphType>(schema.Query.GetField("foo").ResolvedType);

            Assert.Equal(2, i.PossibleTypes.Count());

            var implA = Assert.IsAssignableFrom <ObjectGraphType>(schema.AllTypes.First(_ => _.Name == "FooImplA"));
            var implB = Assert.IsAssignableFrom <ObjectGraphType>(schema.AllTypes.First(_ => _.Name == "FooImplB"));

            Assert.Single(i.PossibleTypes, _ => _ == implA);
            Assert.Single(i.PossibleTypes, _ => _ == implB);

            Assert.Single(implA.ResolvedInterfaces, _ => _ == i);
            Assert.Single(implB.ResolvedInterfaces, _ => _ == i);
        }