/// <summary> /// Gets the API resource. /// </summary> /// <param name="apiResourceName">Name of the API resource.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public async Task <ApiResourceDetails> GetApiResource(String apiResourceName, CancellationToken cancellationToken) { ApiResourceDetails response = null; String requestUri = this.BuildRequestUrl($"/api/apiresources/{apiResourceName}"); try { // Add the access token to the client headers //this.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); // Make the Http Call here HttpResponseMessage httpResponse = await this.HttpClient.GetAsync(requestUri, cancellationToken); // Process the response String content = await this.HandleResponse(httpResponse, cancellationToken); // call was successful so now deserialise the body to the response object response = JsonConvert.DeserializeObject <ApiResourceDetails>(content); } catch (Exception ex) { // An exception has occurred, add some additional information to the message Exception exception = new Exception($"Error getting api resource {apiResourceName}.", ex); throw exception; } return(response); }
/// <summary> /// Gets the API resource. /// </summary> /// <param name="apiResourceName">Name of the API resource.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> /// <exception cref="Exception">Http Status Code [{response.StatusCode}] Message [{responseBody}]</exception> private async Task <ApiResourceDetails> GetApiResource(String apiResourceName, CancellationToken cancellationToken) { ApiResourceDetails apiResourceDetails = await this.TestingContext.DockerHelper.SecurityServiceClient.GetApiResource(apiResourceName, cancellationToken).ConfigureAwait(false); return(apiResourceDetails); }
public async Task WhenIGetTheApiResourceWithNameTheApiResourceDetailsAreReturnedAsFollows(String apiResourceName, Table table) { ApiResourceDetails apiResourceDetails = await this.GetApiResource(apiResourceName, CancellationToken.None).ConfigureAwait(false); table.Rows.Count.ShouldBe(1); TableRow tableRow = table.Rows.First(); apiResourceDetails.ShouldNotBeNull(); String scopes = SpecflowTableHelper.GetStringRowValue(tableRow, "Scopes"); String userClaims = SpecflowTableHelper.GetStringRowValue(tableRow, "UserClaims"); apiResourceDetails.Description.ShouldBe(SpecflowTableHelper.GetStringRowValue(tableRow, "Description")); apiResourceDetails.Name.ShouldBe(SpecflowTableHelper.GetStringRowValue(tableRow, "Name")); apiResourceDetails.DisplayName.ShouldBe(SpecflowTableHelper.GetStringRowValue(tableRow, "DisplayName")); if (string.IsNullOrEmpty(scopes)) { apiResourceDetails.Scopes.ShouldBeEmpty(); } else { apiResourceDetails.Scopes.ShouldBe(scopes.Split(",").ToList()); } if (string.IsNullOrEmpty(userClaims)) { apiResourceDetails.UserClaims.ShouldBeEmpty(); } else { apiResourceDetails.UserClaims.ShouldBe(userClaims.Split(",").ToList()); } }
public void ModelFactory_ConvertFrom_ApiResource_ModelConverted() { IModelFactory modelFactory = new ModelFactory(); ApiResource apiResourceModel = new ApiResource { Scopes = new List <String> { SecurityServiceManagerTestData.AllowedScopes.First() }, Description = SecurityServiceManagerTestData.ApiResourceDescription, Name = SecurityServiceManagerTestData.ApiResourceName, DisplayName = SecurityServiceManagerTestData.ApiResourceDisplayName, UserClaims = SecurityServiceManagerTestData.ApiResourceUserClaims, Enabled = true }; ApiResourceDetails apiResourceDto = modelFactory.ConvertFrom(apiResourceModel); apiResourceDto.Scopes.First().ShouldBe(SecurityServiceManagerTestData.AllowedScopes.First()); apiResourceDto.Description.ShouldBe(SecurityServiceManagerTestData.ApiResourceDescription); apiResourceDto.DisplayName.ShouldBe(SecurityServiceManagerTestData.ApiResourceDisplayName); apiResourceDto.Name.ShouldBe(SecurityServiceManagerTestData.ApiResourceName); apiResourceDto.UserClaims.ShouldBe(SecurityServiceManagerTestData.ApiResourceUserClaims); apiResourceDto.Enabled.ShouldBeTrue(); }
public void ModelFactory_ConvertFrom_ApiResource_ModelIsNull_NullReturned() { IModelFactory modelFactory = new ModelFactory(); ApiResource apiResourceModel = null; ApiResourceDetails apiResourceDto = modelFactory.ConvertFrom(apiResourceModel); apiResourceDto.ShouldBeNull(); }
public async Task WhenIGetTheApiResourcesApiResourceDetailsAreReturnedAsFollows(Int32 numberOfApiResources, Table table) { List <ApiResourceDetails> apiResourceDetailsList = await this.GetApiResources(CancellationToken.None).ConfigureAwait(false); apiResourceDetailsList.Count.ShouldBe(numberOfApiResources); foreach (TableRow tableRow in table.Rows) { String apiResourceName = SpecflowTableHelper.GetStringRowValue(tableRow, "Name"); ApiResourceDetails apiResourceDetails = apiResourceDetailsList.SingleOrDefault(u => u.Name == apiResourceName); String scopes = SpecflowTableHelper.GetStringRowValue(tableRow, "Scopes"); String userClaims = SpecflowTableHelper.GetStringRowValue(tableRow, "UserClaims"); apiResourceDetails.Description.ShouldBe(SpecflowTableHelper.GetStringRowValue(tableRow, "Description")); apiResourceDetails.Name.ShouldBe(SpecflowTableHelper.GetStringRowValue(tableRow, "Name")); apiResourceDetails.DisplayName.ShouldBe(SpecflowTableHelper.GetStringRowValue(tableRow, "DisplayName")); if (string.IsNullOrEmpty(scopes)) { apiResourceDetails.Scopes.ShouldBeEmpty(); } else { apiResourceDetails.Scopes.ShouldBe(scopes.Split(",").ToList()); } if (string.IsNullOrEmpty(userClaims)) { apiResourceDetails.UserClaims.ShouldBeEmpty(); } else { apiResourceDetails.UserClaims.ShouldBe(userClaims.Split(",").ToList()); } } }