Ejemplo n.º 1
0
        public void ToListRowsOptions_BothPageTokenAndStartIndexSet()
        {
            var options = new GetQueryResultsOptions
            {
                StartIndex = 10,
                PageToken  = "foo"
            };

            Assert.Throws <ArgumentException>(() => options.ToListRowsOptions());
        }
Ejemplo n.º 2
0
        public void ModifyRequest_BothPageTokenAndStartIndexSet()
        {
            var options = new GetQueryResultsOptions
            {
                StartIndex = 10,
                PageToken  = "foo"
            };
            GetQueryResultsRequest request = new GetQueryResultsRequest(new BigqueryService(), "project", "job");

            Assert.Throws <ArgumentException>(() => options.ModifyRequest(request));
        }
Ejemplo n.º 3
0
        public void ModifyRequest_NoneSet()
        {
            var options = new GetQueryResultsOptions();
            GetQueryResultsRequest request = new GetQueryResultsRequest(new BigqueryService(), "project", "job");

            options.ModifyRequest(request);
            Assert.Equal(null, request.StartIndex);
            Assert.Equal(null, request.PageToken);
            Assert.Equal(null, request.MaxResults);
            Assert.Equal(null, request.TimeoutMs);
        }
Ejemplo n.º 4
0
        public void ToListRowsOptions_PageToken()
        {
            var options = new GetQueryResultsOptions
            {
                PageSize  = 25,
                PageToken = "token"
            };
            var listOptions = options.ToListRowsOptions();

            Assert.Equal(25, listOptions.PageSize);
            Assert.Equal("token", listOptions.PageToken);
            Assert.Null(listOptions.StartIndex);
        }
Ejemplo n.º 5
0
        public void ToListRowsOptions_StartIndex()
        {
            var options = new GetQueryResultsOptions
            {
                StartIndex = 10,
                PageSize   = 25,
            };
            var listOptions = options.ToListRowsOptions();

            Assert.Equal(10UL, listOptions.StartIndex);
            Assert.Equal(25, listOptions.PageSize);
            Assert.Null(listOptions.PageToken);
        }
Ejemplo n.º 6
0
        public void ExecuteQuery_Timeout()
        {
            // SQL that I happen to know takes over 10 seconds to query.
            string         sql          = "SELECT id FROM [bigquery-public-data:github_repos.contents] where content contains 'NodaTime' AND content contains '2.0.2' LIMIT 1000";
            BigQueryClient client       = BigQueryClient.Create(_fixture.ProjectId);
            var            queryOptions = new QueryOptions {
                UseLegacySql = true, UseQueryCache = false
            };
            var resultsOptions = new GetQueryResultsOptions {
                Timeout = TimeSpan.FromSeconds(2)
            };

            Assert.Throws <TimeoutException>(() => client.ExecuteQuery(sql, null, queryOptions, resultsOptions));
        }
Ejemplo n.º 7
0
        public void ModifyRequest_NoOp()
        {
            var options = new GetQueryResultsOptions
            {
                PageSize  = 25,
                PageToken = "foo",
                Timeout   = TimeSpan.FromSeconds(5),
            };
            GetQueryResultsRequest request = new GetQueryResultsRequest(new BigqueryService(), "project", "job");

            options.ModifyRequest(request);
            Assert.Null(request.PageToken);
            Assert.Null(request.MaxResults);
            Assert.Null(request.TimeoutMs);
        }
Ejemplo n.º 8
0
        public void ModifyRequest_AllSetExceptPageToken()
        {
            var options = new GetQueryResultsOptions
            {
                StartIndex = 10,
                PageSize   = 25,
                Timeout    = TimeSpan.FromSeconds(5),
            };
            GetQueryResultsRequest request = new GetQueryResultsRequest(new BigqueryService(), "project", "job");

            options.ModifyRequest(request);
            Assert.Equal(10UL, request.StartIndex);
            Assert.Equal(25, request.MaxResults);
            Assert.Equal(5 * 1000, request.TimeoutMs);
        }
        public void Clone()
        {
            var options = new GetQueryResultsOptions
            {
                PageSize   = 25,
                StartIndex = 10,
                Timeout    = TimeSpan.FromMinutes(20)
            };
            var clone = options.Clone();

            options.PageSize   = 20;
            options.StartIndex = 5;
            Assert.Equal(25, clone.PageSize);
            Assert.Equal(10UL, clone.StartIndex);
            Assert.Equal(TimeSpan.FromMinutes(20), clone.Timeout);
        }
        public void ModifyRequest()
        {
            var options = new GetQueryResultsOptions
            {
                PageSize  = 25,
                PageToken = "foo",
                Timeout   = TimeSpan.FromSeconds(5),
            };
            GetQueryResultsRequest request = new GetQueryResultsRequest(new BigqueryService(), "project", "job");

            options.ModifyRequest(request);
            Assert.Equal("foo", request.PageToken);
            Assert.Equal(25, request.MaxResults);
            // ModifyRequest doesn't modify the timeout, as that's done externally
            Assert.Null(request.TimeoutMs);
        }
Ejemplo n.º 11
0
        public void PollQueryUntilCompletedEquivalents()
        {
            var jobId     = "job";
            var reference = GetJobReference(jobId);
            var getQueryResultsOptions = new GetQueryResultsOptions();
            var pollSettings           = new PollSettings(Expiration.None, TimeSpan.Zero);

            VerifyEquivalent(
                new BigQueryResults(new DerivedBigQueryClient(), new GetQueryResultsResponse {
                JobReference = reference
            }, getQueryResultsOptions),
                client => client.PollQueryUntilCompleted(MatchesWhenSerialized(reference), getQueryResultsOptions, pollSettings),
                client => client.PollQueryUntilCompleted(jobId, getQueryResultsOptions, pollSettings),
                client => client.PollQueryUntilCompleted(ProjectId, jobId, getQueryResultsOptions, pollSettings),
                client => new BigQueryJob(client, GetJob(reference)).PollQueryUntilCompleted(getQueryResultsOptions, pollSettings),
                client => new BigQueryResults(client, new GetQueryResultsResponse {
                JobReference = reference
            }, getQueryResultsOptions).PollUntilCompleted(pollSettings));
        }
Ejemplo n.º 12
0
        public void PollQueryUntilCompletedAsyncEquivalents()
        {
            var jobId     = "job";
            var reference = GetJobReference(jobId);
            var getQueryResultsOptions = new GetQueryResultsOptions();
            var pollSettings           = new PollSettings(Expiration.None, TimeSpan.Zero);
            var token = new CancellationTokenSource().Token;

            VerifyEquivalentAsync(
                new BigqueryQueryJob(new DerivedBigqueryClient(), new GetQueryResultsResponse {
                JobReference = reference
            }, getQueryResultsOptions),
                client => client.PollQueryUntilCompletedAsync(MatchesWhenSerialized(reference), getQueryResultsOptions, pollSettings, token),
                client => client.PollQueryUntilCompletedAsync(jobId, getQueryResultsOptions, pollSettings, token),
                client => client.PollQueryUntilCompletedAsync(ProjectId, jobId, getQueryResultsOptions, pollSettings, token),
                client => new BigqueryJob(client, GetJob(reference)).PollQueryUntilCompletedAsync(getQueryResultsOptions, pollSettings, token),
                client => new BigqueryQueryJob(client, new GetQueryResultsResponse {
                JobReference = reference
            }, getQueryResultsOptions).PollUntilCompletedAsync(pollSettings, token));
        }
Ejemplo n.º 13
0
        protected override void ProcessRecord()
        {
            // Set Project for the lazy instantiation of a BQ Client object.
            Project = InputObject.ProjectId;

            var options = new GetQueryResultsOptions {
                Timeout = new TimeSpan(0, 0, (Timeout < 10) ? 10 : Timeout)
            };

            try
            {
                BigQueryResults result = Client.GetQueryResults(InputObject, options);
                if (result == null)
                {
                    throw new Exception("Server response came back as null.");
                }
                WriteObject(result.GetRows(), true);
            }
            catch (Exception ex)
            {
                ThrowTerminatingError(new ErrorRecord(ex, "Failed to receive results.",
                                                      ErrorCategory.InvalidOperation, this));
            }
        }