コード例 #1
0
        public void AddQueryTypeDesc_ConfigureIsNull_ArgumentNullException()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () => SchemaBuilderExtensions
                            .AddQueryType(builder, (Action <IObjectTypeDescriptor>)null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #2
0
        public void AddQueryTypeDescT_ConfigureQueryType_SchemaIsCreated()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            SchemaBuilderExtensions.AddQueryType <Foo>(builder,
                                                       t => t.Name("Foo").Field(f => f.Bar).Resolver("result"));

            // assert
            builder.Create().ToString().MatchSnapshot();
        }
コード例 #3
0
        public void AddDocumentFromFile_File_Is_Null()
        {
            // arrange
            var builder = SchemaBuilder.New();

            // act
            Action action = () =>
                            SchemaBuilderExtensions.AddDocumentFromFile(builder, null);

            // assert
            Assert.Throws <ArgumentException>(action);
        }
コード例 #4
0
        public void AddDirectiveType_TypeIsNull_ArgumentNullException()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () =>
                            SchemaBuilderExtensions.AddDirectiveType(builder, (Type)null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #5
0
        public void SetSchema_BuilderIsNull_ArgumentException()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () =>
                            SchemaBuilderExtensions.SetSchema <MySchema>(null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #6
0
        public void AddSubscriptionTypeObjectType_TypeIsNull_ArgNullException()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () => SchemaBuilderExtensions
                            .AddMutationType(builder, (ObjectType)null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #7
0
        public void AddDirectiveType_TypeIsDirectiveTypeFoo_ArgumentException()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () =>
                            SchemaBuilderExtensions.AddDirectiveType(
                builder, typeof(DirectiveType <Foo>));

            // assert
            Assert.Throws <ArgumentException>(action);
        }
コード例 #8
0
        public void AddMutationTypeObjectType_TypeIsFooType_SchemaIsCreated()
        {
            // arrange
            var builder = new SchemaBuilder();

            builder.AddQueryType <QueryType>();

            // act
            SchemaBuilderExtensions.AddMutationType(builder, new FooType());

            // assert
            builder.Create().ToString().MatchSnapshot();
        }
コード例 #9
0
        public void AddDirectiveType_TypeIsMyDirectiveType_SchemaIsValid()
        {
            // arrange
            var builder = new SchemaBuilder();

            builder.AddQueryType <QueryType>();

            // act
            SchemaBuilderExtensions.AddDirectiveType(
                builder, typeof(MyDirective));

            // assert
            builder.Create().ToString().MatchSnapshot();
        }
コード例 #10
0
        public void AddSubscriptionTypeType_TypeIsFooType_SchemaIsCreated()
        {
            // arrange
            var builder = new SchemaBuilder();

            builder.AddQueryType <QueryType>();

            // act
            SchemaBuilderExtensions.AddSubscriptionType(
                builder, typeof(FooType));

            // assert
            builder.Create().ToString().MatchSnapshot();
        }
コード例 #11
0
        public void AddMutationTypeDesc_ConfigureQueryType_SchemaIsCreated()
        {
            // arrange
            var builder = new SchemaBuilder();

            builder.AddQueryType <QueryType>();

            // act
            SchemaBuilderExtensions.AddMutationType(builder,
                                                    t => t.Name("Foo").Field("bar").Resolve("result"));

            // assert
            builder.Create().ToString().MatchSnapshot();
        }
コード例 #12
0
        public void AddEnumTypeT_With_Descriptor()
        {
            // arrange
            SchemaBuilder builder = SchemaBuilder.New();

            // act
            SchemaBuilderExtensions.AddEnumType <MyEnum>(
                builder, d => d.BindValuesExplicitly().Value(MyEnum.A));

            // assert
            builder
            .ModifyOptions(o => o.StrictValidation = false)
            .Create()
            .ToString()
            .MatchSnapshot();
        }
コード例 #13
0
        public void AddEnumType_With_Descriptor()
        {
            // arrange
            SchemaBuilder builder = SchemaBuilder.New();

            // act
            SchemaBuilderExtensions.AddEnumType(
                builder, d => d.Name("Foo").Value("bar").Name("BAZ"));

            // assert
            builder
            .ModifyOptions(o => o.StrictValidation = false)
            .Create()
            .ToString()
            .MatchSnapshot();
        }
コード例 #14
0
        public void AddResolverContextTaskObject_ResolverIsNull_ArgNullExcept()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () => SchemaBuilderExtensions
                            .AddResolver(
                builder,
                "A",
                "B",
                (Func <IResolverContext, Task <object> >)null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #15
0
        public void AddInputObjectTypeT_With_Descriptor()
        {
            // arrange
            SchemaBuilder builder = SchemaBuilder.New();

            // act
            SchemaBuilderExtensions.AddInputObjectType <Bar>(
                builder, d => d.Field("qux").Type <StringType>());

            // assert
            builder
            .ModifyOptions(o => o.StrictValidation = false)
            .Create()
            .ToString()
            .MatchSnapshot();
        }
コード例 #16
0
        public void AddResolverObject_BuilderIsNull_ArgNullExcept()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () => SchemaBuilderExtensions
                            .AddResolver(
                null,
                "A",
                "B",
                new Func <object>(() => "abc"));

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #17
0
        public void AddInterfaceType_With_Descriptor()
        {
            // arrange
            SchemaBuilder builder = SchemaBuilder.New();

            // act
            SchemaBuilderExtensions.AddInterfaceType(
                builder, d => d.Name("ABC").Field("abc").Type <StringType>());

            // assert
            builder
            .ModifyOptions(o => o.StrictValidation = false)
            .Create()
            .ToString()
            .MatchSnapshot();
        }
コード例 #18
0
        public void AddResolverContextTaskObject_BuilderIsNull_ArgNullExcept()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () => SchemaBuilderExtensions
                            .AddResolver(
                null,
                "A",
                "B",
                new Func <IResolverContext, Task <object> >(
                    c => Task.FromResult(new object())));

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #19
0
        public void AddResolverContextTResult_BuilderIsNull_ArgNullExcept()
        {
            // arrange
            var builder = new SchemaBuilder();

            // act
            Action action = () => SchemaBuilderExtensions
                            .AddResolver(
                null,
                "A",
                "B",
                new Func <IResolverContext, string>(
                    c => "abc"));

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #20
0
        public async Task AddDocumentFromFile()
        {
            // arrange
            var    builder = SchemaBuilder.New();
            string file    = IOPath.GetTempFileName();
            await File.WriteAllTextAsync(file, "type Query { a: String }");

            // act
            SchemaBuilderExtensions.AddDocumentFromFile(builder, file);

            // assert
            ISchema schema = builder
                             .Use(next => context => next.Invoke(context))
                             .Create();

            schema.ToString().MatchSnapshot();
        }
コード例 #21
0
        public void AddResolverContextObject_ResolveField()
        {
            // arrange
            var builder = new SchemaBuilder();

            builder.AddDocumentFromString("type Query { foo: String }");

            // act
            SchemaBuilderExtensions
            .AddResolver(
                builder,
                "Query",
                "foo",
                new Func <IResolverContext, object>(c => "bar"));

            // assert
            builder.Create()
            .MakeExecutable()
            .ExecuteAsync("{ foo }")
            .Result
            .MatchSnapshot();
        }
コード例 #22
0
        public void AddUnionTypeT_With_Descriptor()
        {
            // arrange
            SchemaBuilder builder = SchemaBuilder.New();

            builder.AddObjectType(d => d
                                  .Name("Foo")
                                  .Field("bar")
                                  .Type <StringType>()
                                  .Resolve("empty"));

            // act
            SchemaBuilderExtensions.AddUnionType <IMyInterface>(
                builder, d => d.Name("ABC").Type(new NamedTypeNode("Foo")));

            // assert
            builder
            .ModifyOptions(o => o.StrictValidation = false)
            .Create()
            .ToString()
            .MatchSnapshot();
        }
コード例 #23
0
        public async Task AddResolverObject_ResolveField()
        {
            // arrange
            Snapshot.FullName();
            var builder = new SchemaBuilder();

            builder.AddDocumentFromString("type Query { foo: String }");

            // act
            SchemaBuilderExtensions
            .AddResolver(
                builder,
                "Query",
                "foo",
                new Func <object>(() => "bar"));

            // assert
            await builder.Create()
            .MakeExecutable()
            .ExecuteAsync("{ foo }")
            .MatchSnapshotAsync();
        }
コード例 #24
0
        public async Task AddResolverContextTaskTResult_ResolveField()
        {
            // arrange
            Snapshot.FullName();
            var builder = new SchemaBuilder();

            builder.AddDocumentFromString("type Query { foo: String }");

            // act
            SchemaBuilderExtensions
            .AddResolver(
                builder,
                "Query",
                "foo",
                new Func <IResolverContext, ValueTask <string> >(
                    c => new ValueTask <string>("bar")));

            // assert
            await builder.Create()
            .MakeExecutable()
            .ExecuteAsync("{ foo }")
            .MatchSnapshotAsync();
        }