Esempio n. 1
0
        public void GetDataset_FailThenRetry()
        {
            var projectId = "project";
            var datasetId = "dataset";
            var service   = new FakeBigqueryService();
            var client    = new BigQueryClientImpl(projectId, service);
            var reference = client.GetDatasetReference(projectId, datasetId);

            service.ExpectRequest(
                service.Datasets.Get(projectId, datasetId),
                HttpStatusCode.InternalServerError,
                new RequestError {
                Errors = new[] { new SingleError {
                                     Reason = "backendError"
                                 } }
            });
            service.ExpectRequest(
                service.Datasets.Get(projectId, datasetId),
                new Dataset {
                DatasetReference = reference
            });
            var result = client.GetDataset(reference);

            service.Verify();
            Assert.Equal(projectId, result.Reference.ProjectId);
            Assert.Equal(datasetId, result.Reference.DatasetId);
        }
Esempio n. 2
0
        public void UpdateDataset_NoRetryIfETagAbsent()
        {
            var projectId = "project";
            var datasetId = "dataset";
            var service   = new FakeBigqueryService();
            var client    = new BigQueryClientImpl(projectId, service);
            var reference = client.GetDatasetReference(projectId, datasetId);
            var dataset   = new Dataset {
                FriendlyName = "Foo"
            };

            service.ExpectRequest(
                service.Datasets.Update(dataset, projectId, datasetId),
                HttpStatusCode.InternalServerError,
                new RequestError {
                Errors = new[] { new SingleError {
                                     Reason = "backendError"
                                 } }
            });
            // No second chance...
            var exception = Assert.Throws <GoogleApiException>(() => client.UpdateDataset(reference, dataset));

            Assert.Equal("backendError", exception.Error.Errors[0].Reason);
            service.Verify();
        }
Esempio n. 3
0
        public void UpdateDataset_RetryIfETagPresent()
        {
            var projectId = "project";
            var datasetId = "dataset";
            var service   = new FakeBigqueryService();
            var client    = new BigQueryClientImpl(projectId, service);
            var reference = client.GetDatasetReference(projectId, datasetId);
            var dataset   = new Dataset {
                FriendlyName = "Foo", ETag = "\"etag\""
            };

            service.ExpectRequest(
                service.Datasets.Update(dataset, projectId, datasetId),
                HttpStatusCode.InternalServerError,
                new RequestError {
                Errors = new[] { new SingleError {
                                     Reason = "backendError"
                                 } }
            });
            service.ExpectRequest(
                service.Datasets.Update(dataset, projectId, datasetId),
                new Dataset {
                DatasetReference = reference
            });
            var result = client.UpdateDataset(reference, dataset);

            service.Verify();
            Assert.Equal(projectId, result.Reference.ProjectId);
            Assert.Equal(datasetId, result.Reference.DatasetId);
        }
Esempio n. 4
0
        public void GetDataset_NonRetriableFailure()
        {
            var projectId = "project";
            var datasetId = "dataset";
            var service   = new FakeBigqueryService();
            var client    = new BigQueryClientImpl(projectId, service);
            var reference = client.GetDatasetReference(projectId, datasetId);

            service.ExpectRequest(
                service.Datasets.Get(projectId, datasetId),
                HttpStatusCode.BadRequest,
                new RequestError {
                Errors = new[] { new SingleError {
                                     Reason = "youCan'tRetryThis"
                                 } }
            });
            Assert.Throws <GoogleApiException>(() => client.GetDataset(reference));
            service.Verify();
        }