/// <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());
            }
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        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());
                }
            }
        }