Beispiel #1
0
        public async Task RootValueProvidedByRequest()
        {
            // arrange
            Schema schema = Schema.Create(c =>
            {
                c.RegisterQueryType <DisposableQuery>();
            });

            var rootValue = new DisposableQuery();

            var request = new QueryRequest("{ isDisposable }")
            {
                InitialValue = rootValue
            }.ToReadOnly();

            var context = new QueryContext(
                schema,
                MiddlewareTools.CreateEmptyRequestServiceScope(),
                request);

            context.Document = Parser.Default.Parse(request.Query);

            var middleware = new ResolveOperationMiddleware(
                c => Task.CompletedTask, null);

            // act
            await middleware.InvokeAsync(context);

            // assert
            Assert.True(object.ReferenceEquals(
                            rootValue, context.Operation.RootValue));
        }
Beispiel #2
0
        public async Task RootValueNotProvidedAndRegisteredWithServices()
        {
            // arrange
            Schema schema = Schema.Create(c =>
            {
                c.RegisterQueryType <DisposableQuery>();
            });

            var request = new QueryRequest("{ isDisposable }").ToReadOnly();

            var context = new QueryContext(
                schema,
                MiddlewareTools.CreateEmptyRequestServiceScope(),
                request);

            context.Document = Parser.Default.Parse(request.Query);

            var middleware = new ResolveOperationMiddleware(
                c => Task.CompletedTask, null);

            // act
            await middleware.InvokeAsync(context);

            // assert
            DisposableQuery query = Assert.IsType <DisposableQuery>(
                context.Operation.RootValue);

            Assert.True(query.IsDisposed);
        }
Beispiel #3
0
        public async Task RooValueIsRegisterdAsService()
        {
            // arrange
            var services = new DictionaryServiceProvider(
                typeof(DisposableQuery), new DisposableQuery());

            Schema schema = Schema.Create(c =>
            {
                c.RegisterQueryType <DisposableQuery>();
            });

            var request = new QueryRequest("{ isDisposable }").ToReadOnly();

            var context = new QueryContext(
                schema,
                services.CreateRequestServiceScope(),
                request);

            context.Document = Parser.Default.Parse(request.Query);

            var middleware = new ResolveOperationMiddleware(
                c => Task.CompletedTask, null);

            // act
            await middleware.InvokeAsync(context);

            // assert
            DisposableQuery query = Assert.IsType <DisposableQuery>(
                context.Operation.RootValue);

            Assert.False(query.IsDisposed);
        }
Beispiel #4
0
        public async Task ProvidedRootValueTakesPrecedenceOverService()
        {
            // arrange
            var services = new DictionaryServiceProvider(
                typeof(DisposableQuery), new DisposableQuery());

            var schema = Schema.Create(c =>
            {
                c.RegisterQueryType <DisposableQuery>();
            });

            var rootValue = new DisposableQuery();

            var sourceText = "{ isDisposable }";

            var request = QueryRequestBuilder.New()
                          .SetQuery(sourceText)
                          .SetInitialValue(rootValue)
                          .Create();

            var context = new QueryContext
                          (
                schema,
                MiddlewareTools.CreateRequestServiceScope(services),
                request,
                (f, s) => f.Middleware
                          );

            context.Document = Utf8GraphQLParser.Parse(sourceText);
            context.QueryKey = "foo";

            var middleware = new ResolveOperationMiddleware(
                c => Task.CompletedTask, null);

            // act
            await middleware.InvokeAsync(context);

            // assert
            Assert.True(object.ReferenceEquals(
                            rootValue, context.Operation.RootValue));
        }
Beispiel #5
0
        public async Task RootValueIsRegisterdAsService()
        {
            // arrange
            var services = new DictionaryServiceProvider(
                typeof(DisposableQuery), new DisposableQuery());

            var schema = Schema.Create(c =>
            {
                c.RegisterQueryType <DisposableQuery>();
            });

            var sourceText = "{ isDisposable }";

            var request = QueryRequestBuilder.New()
                          .SetQuery(sourceText)
                          .Create();

            var context = new QueryContext
                          (
                schema,
                MiddlewareTools.CreateRequestServiceScope(services),
                request,
                (f, s) => f.Middleware
                          );

            context.Document = Utf8GraphQLParser.Parse(sourceText);
            context.QueryKey = "foo";

            var middleware = new ResolveOperationMiddleware(
                c => Task.CompletedTask, null);

            // act
            await middleware.InvokeAsync(context);

            // assert
            DisposableQuery query = Assert.IsType <DisposableQuery>(
                context.Operation.RootValue);

            Assert.False(query.IsDisposed);
        }
Beispiel #6
0
        public async Task ProvidedRootValueTakesPrecedenceOverService()
        {
            // arrange
            var services = new DictionaryServiceProvider(
                typeof(DisposableQuery), new DisposableQuery());

            Schema schema = Schema.Create(c =>
            {
                c.RegisterQueryType <DisposableQuery>();
            });

            var rootValue = new DisposableQuery();

            var request = new QueryRequest("{ isDisposable }")
            {
                InitialValue = rootValue
            };

            var context = new QueryContext
                          (
                schema,
                MiddlewareTools.CreateRequestServiceScope(services),
                request,
                fs => fs.Field.Middleware
                          );

            context.Document = Parser.Default.Parse(request.Query);

            var middleware = new ResolveOperationMiddleware(
                c => Task.CompletedTask, null);

            // act
            await middleware.InvokeAsync(context);

            // assert
            Assert.True(object.ReferenceEquals(
                            rootValue, context.Operation.RootValue));
        }