public async Task ExecuteAsync_ExecutorQuery_ExecutorNull()
        {
            // arrange
            var request = "{ foo }";

            // act
            Func <Task> action = () =>
                                 QueryExecutorExtensions.ExecuteAsync(null, request);

            // assert
            await Assert.ThrowsAsync <ArgumentNullException>(action);
        }
        public void Execute_ExecutorQuery_ExecutorNull()
        {
            // arrange
            var request = "{ foo }";

            // act
            Action action = () =>
                            QueryExecutorExtensions.Execute(null, request);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public void Execute_ExecutorRequest_RequestNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            // act
            Action action = () =>
                            QueryExecutorExtensions.Execute(
                executor, (IReadOnlyQueryRequest)null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public async Task ExecuteAsync_ExecutorQueryCancellation_RequestNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            // act
            Func <Task> action = () =>
                                 QueryExecutorExtensions.ExecuteAsync(
                executor, (string)null, CancellationToken.None);

            // assert
            await Assert.ThrowsAsync <ArgumentException>(action);
        }
        public void Execute_ExecutorQuery_RequestNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            // act
            Action action = () =>
                            QueryExecutorExtensions.Execute(
                executor, (string)null);

            // assert
            Assert.Throws <ArgumentException>(action);
        }
        public async Task ExecuteAsync_ExecutorRequest_RequestNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            // act
            Func <Task> action = () =>
                                 QueryExecutorExtensions.ExecuteAsync(
                executor, (IReadOnlyQueryRequest)null);

            // assert
            await Assert.ThrowsAsync <ArgumentNullException>(action);
        }
        public async Task ExecuteAsync_ExecutorQuery_Execute()
        {
            // arrange
            IQueryExecutor executor = Create();

            var request = "{ foo }";

            // act
            IExecutionResult result =
                await QueryExecutorExtensions.ExecuteAsync(executor, request);

            // assert
            result.MatchSnapshot();
        }
        public void Execute_ExecutorQuery_Execute()
        {
            // arrange
            IQueryExecutor executor = Create();

            var request = "{ foo }";

            // act
            IExecutionResult result =
                QueryExecutorExtensions.Execute(executor, request);

            // assert
            result.MatchSnapshot();
        }
        public async Task ExecuteAsync_ExecutorRequest_ExecutorNull()
        {
            // arrange
            IReadOnlyQueryRequest request =
                QueryRequestBuilder.New()
                .SetQuery("{ foo }")
                .Create();

            // act
            Func <Task> action = () =>
                                 QueryExecutorExtensions.ExecuteAsync(null, request);

            // assert
            await Assert.ThrowsAsync <ArgumentNullException>(action);
        }
        public void Execute_ExecutorRequest_ExecutorNull()
        {
            // arrange
            IReadOnlyQueryRequest request =
                QueryRequestBuilder.New()
                .SetQuery("{ foo }")
                .Create();

            // act
            Action action = () =>
                            QueryExecutorExtensions.Execute(null, request);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public async Task ExecuteAsync_ExecutorQueryVariablesCT_VariablesNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            var request = "query a($a : String) { foo(a: $a) }";

            // act
            Func <Task> action = () =>
                                 QueryExecutorExtensions.ExecuteAsync(
                executor, request, null, CancellationToken.None);

            // assert
            await Assert.ThrowsAsync <ArgumentNullException>(action);
        }
        public void Execute_ExecutorQueryVariables_VariablesNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            var request = "query a($a : String) { foo(a: $a) }";

            // act
            Action action = () =>
                            QueryExecutorExtensions.Execute(
                executor, request, null);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public async Task ExecuteAsync_ExecutorRequest_Execute()
        {
            // arrange
            IQueryExecutor executor = Create();

            IReadOnlyQueryRequest request =
                QueryRequestBuilder.New()
                .SetQuery("{ foo }")
                .Create();

            // act
            IExecutionResult result =
                await QueryExecutorExtensions.ExecuteAsync(executor, request);

            // assert
            result.MatchSnapshot();
        }
        public void Execute_ExecutorQueryVariables_ExecutorNull()
        {
            // arrange
            var request = "query a($a : String) { foo(a: $a) }";

            var variables = new Dictionary <string, object>
            {
                { "a", "_baz" }
            };

            // act
            Action action = () =>
                            QueryExecutorExtensions.Execute(null, request, variables);

            // assert
            Assert.Throws <ArgumentNullException>(action);
        }
        public void Execute_ExecutorQueryVariables_RequestNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            var variables = new Dictionary <string, object>
            {
                { "a", "_baz" }
            };

            // act
            Action action = () =>
                            QueryExecutorExtensions.Execute(
                executor, (string)null, variables);

            // assert
            Assert.Throws <ArgumentException>(action);
        }
        public async Task ExecuteAsync_ExecutorQueryVariablesCT_RequestNull()
        {
            // arrange
            IQueryExecutor executor = Create();

            var variables = new Dictionary <string, object>
            {
                { "a", "_baz" }
            };

            // act
            Func <Task> action = () =>
                                 QueryExecutorExtensions.ExecuteAsync(
                executor, (string)null, variables, CancellationToken.None);

            // assert
            await Assert.ThrowsAsync <ArgumentException>(action);
        }
        public async Task ExecuteAsync_ExecutorQueryVariablesCT_ExecutorNull()
        {
            // arrange
            var request = "query a($a : String) { foo(a: $a) }";

            var variables = new Dictionary <string, object>
            {
                { "a", "_baz" }
            };

            // act
            Func <Task> action = () =>
                                 QueryExecutorExtensions.ExecuteAsync(
                null, request, variables, CancellationToken.None);

            // assert
            await Assert.ThrowsAsync <ArgumentNullException>(action);
        }
        public void Execute_ExecutorQueryVariables_Execute()
        {
            // arrange
            IQueryExecutor executor = Create();

            var request = "query a($a : String) { foo(a: $a) }";

            var variables = new Dictionary <string, object>
            {
                { "a", "_baz" }
            };

            // act
            IExecutionResult result =
                QueryExecutorExtensions.Execute(
                    executor, request, variables);

            // assert
            result.MatchSnapshot();
        }
        public async Task ExecuteAsync_ExecutorQueryVariablesCT_Execute()
        {
            // arrange
            IQueryExecutor executor = Create();

            var request = "query a($a : String) { foo(a: $a) }";

            var variables = new Dictionary <string, object>
            {
                { "a", "_baz" }
            };

            // act
            IExecutionResult result =
                await QueryExecutorExtensions.ExecuteAsync(
                    executor, request, variables, CancellationToken.None);

            // assert
            result.MatchSnapshot();
        }