A fake http client handler to allow easy mocking of responses
Inheritance: System.Net.Http.HttpClientHandler
Esempio n. 1
0
        public async Task ReportClone()
        {
            var cloneResponse = CreateSampleCloneReportResponse();

            var reportId = Guid.NewGuid().ToString();

            var cloneRequest = new CloneReportRequest()
            {
                TargetModelId     = Guid.NewGuid().ToString(),
                Name              = "Model Name",
                TargetWorkspaceId = Guid.NewGuid().ToString()
            };

            using (var handler = new FakeHttpClientHandler(cloneResponse))
                using (var client = CreatePowerBIClient(handler))
                {
                    var response = await client.Reports.CloneReportAsync(reportId, cloneRequest);

                    var expectedRequestUrl = $"https://api.powerbi.com/v1.0/myorg/reports/{reportId}/Clone";

                    Assert.AreEqual(expectedRequestUrl, handler.Request.RequestUri.ToString());
                    Assert.IsNotNull(response.Id);
                    Assert.IsNotNull(response.EmbedUrl);
                    Assert.IsNotNull(response.Name);
                    Assert.IsNotNull(response.WebUrl);
                    CheckAuthHeader(handler.Request.Headers.Authorization.ToString());
                }
        }
Esempio n. 2
0
        public async Task UpdateReportContent()
        {
            var updateReportContentResponse = CreateSampleReportResponse();

            var reportId = Guid.NewGuid();

            var reportUpdateContentRequest = new UpdateReportContentRequest()
            {
                SourceReport = new SourceReport(Guid.NewGuid(), Guid.NewGuid())
            };

            using (var handler = new FakeHttpClientHandler(updateReportContentResponse))
                using (var client = CreatePowerBIClient(handler))
                {
                    var response = await client.Reports.UpdateReportContentAsync(reportId, reportUpdateContentRequest);

                    var expectedRequestUrl = $"https://api.powerbi.com/v1.0/myorg/reports/{reportId}/UpdateReportContent";

                    Assert.AreEqual(expectedRequestUrl, handler.Request.RequestUri.ToString());
                    Assert.IsNotNull(response.Id);
                    Assert.IsNotNull(response.EmbedUrl);
                    Assert.IsNotNull(response.Name);
                    Assert.IsNotNull(response.WebUrl);
                    CheckAuthHeader(handler.Request.Headers.Authorization.ToString());
                }
        }
Esempio n. 3
0
        public async Task CreateInstallTicket()
        {
            var installTicketReponse = CreateInstallTicketResponse(this.appId);

            var reportId = Guid.NewGuid();

            using (var handler = new FakeHttpClientHandler(installTicketReponse))
                using (var client = CreatePowerBIClient(handler))
                {
                    var request = new CreateInstallTicketRequest
                    {
                        InstallDetails = new List <TemplateAppInstallDetails> {
                            new TemplateAppInstallDetails
                            {
                                AppId         = this.appId,
                                PackageKey    = this.packageKey,
                                OwnerTenantId = this.ownerTenantId,
                                Config        = new TemplateAppConfigurationRequest
                                {
                                    Configuration = new Dictionary <string, string>()
                                    {
                                        { "param1", "value1" }
                                    }
                                }
                            }
                        }
                    };
                    await client.TemplateApps.CreateInstallTicketAsync(request);

                    var expectedRequestUrl = $"https://api.powerbi.com/v1.0/myorg/CreateTemplateAppInstallTicket";
                    Assert.AreEqual(expectedRequestUrl, handler.Request.RequestUri.ToString());
                    CheckAuthHeader(handler.Request.Headers.Authorization.ToString());
                }
        }
        public async Task PostImportFileWithConflict()
        {
            var nameConflict = "Overwrite";
            var importResponse = CreateSampleImportResponse();

            using (var handler = new FakeHttpClientHandler(importResponse))
            using (var client = CreatePowerBIClient(handler))
            using (var stream = new MemoryStream())
            {
                await client.Imports.PostImportWithFileAsync(this.workspaceCollectionName, this.workspaceId, stream, nameConflict: nameConflict);
                var expectedRequesetUrl = $"https://api.powerbi.com/v1.0/collections/{this.workspaceCollectionName}/workspaces/{this.workspaceId}/imports?nameConflict={nameConflict}";
                Assert.AreEqual(expectedRequesetUrl, handler.Request.RequestUri.ToString());
            }
        }
Esempio n. 5
0
        public async Task PostImportFileWithNameAndSkipReport()
        {
            var datasetDisplayName = "TestDataset";
            var importResponse     = CreateSampleImportResponse();

            using (var handler = new FakeHttpClientHandler(importResponse))
                using (var client = CreatePowerBIClient(handler))
                    using (var stream = new MemoryStream())
                    {
                        await client.Imports.PostImportWithFileAsync(stream, datasetDisplayName, skipReport : true);

                        var expectedRequesetUrl = $"https://api.powerbi.com/v1.0/myorg/imports?datasetDisplayName={datasetDisplayName}&skipReport=True";
                        Assert.AreEqual(expectedRequesetUrl, handler.Request.RequestUri.ToString());
                    }
        }
Esempio n. 6
0
        public async Task Groups_PostImportFileWithName()
        {
            var datasetDisplayName = "TestDataset";
            var importResponse     = CreateSampleImportResponse();

            using (var handler = new FakeHttpClientHandler(importResponse))
                using (var client = CreatePowerBIClient(handler))
                    using (var stream = new MemoryStream())
                    {
                        await client.Imports.PostImportWithFileAsyncInGroup(this.groupId, stream, datasetDisplayName);

                        var expectedRequesetUrl = $"https://api.powerbi.com/v1.0/myorg/groups/{this.groupId}/imports?datasetDisplayName={datasetDisplayName}";
                        Assert.AreEqual(expectedRequesetUrl, handler.Request.RequestUri.ToString());
                    }
        }
Esempio n. 7
0
        public async Task PostImportFileWithConflict()
        {
            var nameConflict   = "Overwrite";
            var importResponse = CreateSampleImportResponse();

            using (var handler = new FakeHttpClientHandler(importResponse))
                using (var client = CreatePowerBIClient(handler))
                    using (var stream = new MemoryStream())
                    {
                        await client.Imports.PostImportWithFileAsync(stream, nameConflict : nameConflict);

                        var expectedRequesetUrl = $"https://api.powerbi.com/v1.0/myorg/imports?nameConflict={nameConflict}";
                        Assert.AreEqual(expectedRequesetUrl, handler.Request.RequestUri.ToString());
                    }
        }
Esempio n. 8
0
        public async Task ReportDeleteInGroup()
        {
            var deleteResponse = CreateSampleCloneReportResponse();

            var reportId = Guid.NewGuid().ToString();

            using (var handler = new FakeHttpClientHandler(deleteResponse))
                using (var client = CreatePowerBIClient(handler))
                {
                    await client.Reports.DeleteReportInGroupAsync(this.groupId, reportId);

                    var expectedRequestUrl = $"https://api.powerbi.com/v1.0/myorg/groups/{this.groupId}/reports/{reportId}";
                    Assert.AreEqual(expectedRequestUrl, handler.Request.RequestUri.ToString());
                    CheckAuthHeader(handler.Request.Headers.Authorization.ToString());
                }
        }
Esempio n. 9
0
        public async Task PostImportWithFileWithNameAndConflict()
        {
            var datasetDisplayName = "TestDataset";
            var nameConflict       = "Overwrite";
            var importResponse     = CreateSampleImportResponse();

            using (var handler = new FakeHttpClientHandler(importResponse))
                using (var client = CreatePowerBIClient(handler))
                    using (var stream = new MemoryStream())
                    {
                        await client.Imports.PostImportWithFileAsync(this.workspaceCollectionName, this.workspaceId, stream, datasetDisplayName, nameConflict);

                        var expectedRequesetUrl = $"https://api.powerbi.com/v1.0/collections/{this.workspaceCollectionName}/workspaces/{this.workspaceId}/imports?datasetDisplayName={datasetDisplayName}&nameConflict={nameConflict}";
                        Assert.AreEqual(expectedRequesetUrl, handler.Request.RequestUri.ToString());
                    }
        }
Esempio n. 10
0
        public async Task ReportRebind()
        {
            var rebindResponse = CreateSampleOKResponse();

            var reportId  = Guid.NewGuid().ToString();
            var datasetId = Guid.NewGuid().ToString();

            using (var handler = new FakeHttpClientHandler(rebindResponse))
                using (var client = CreatePowerBIClient(handler))
                {
                    await client.Reports.RebindReportAsync(reportId, new RebindReportRequest(datasetId));

                    var expectedRequestUrl = $"https://api.powerbi.com/v1.0/myorg/reports/{reportId}/Rebind";

                    Assert.AreEqual(expectedRequestUrl, handler.Request.RequestUri.ToString());
                    CheckAuthHeader(handler.Request.Headers.Authorization.ToString());
                }
        }