Esempio n. 1
0
        public void ShouldBeAbleToGetHttpClient()
        {
            // Arrange
            var proxy = new ImageGalleryHttpClient();

            // Act
            var client = proxy.GetClient();

            // Assert
            Assert.IsType <HttpClient>(client);
            Assert.Equal("http://localhost:58828/", client.BaseAddress.ToString());
            Assert.Contains(new MediaTypeWithQualityHeaderValue("application/json"), client.DefaultRequestHeaders.Accept);
        }
Esempio n. 2
0
        private static async Task <GalleryIndexViewModel> InvokeApi()
        {
            var errorResult = Task.FromResult(new GalleryIndexViewModel(new List <Image> {
                new Image {
                    Id = Guid.Empty, Title = "Error", FileName = "Error"
                }
            }));

            var discoveryClient  = new DiscoveryClient("https://localhost:44313/");
            var metadataResponse = await discoveryClient.GetAsync();

            var tokenClient   = new TokenClient(metadataResponse.TokenEndpoint, "IntegrationSvc", "-Yell0wcar-");
            var tokenResponse = await tokenClient.RequestResourceOwnerPasswordAsync("System", "5y5tem", "imagegalleryapi");

            if (tokenResponse.IsError)
            {
                return(await Task.FromResult(new GalleryIndexViewModel(new List <Image> {
                    new Image {
                        Id = Guid.Empty, Title = "Error", FileName = tokenResponse.Error
                    }
                })));
            }

            var imageGalleryHttpClient = new ImageGalleryHttpClient(tokenResponse.AccessToken);
            var httpClient             = imageGalleryHttpClient.GetClient();
            var response = await httpClient.GetAsync($"api/images").ConfigureAwait(false);

            if (response.IsSuccessStatusCode)
            {
                var imagesAsString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                var galleryIndexViewModel = new GalleryIndexViewModel(
                    JsonConvert.DeserializeObject <IList <Image> >(imagesAsString).ToList());

                return(await Task.FromResult(galleryIndexViewModel));
            }
            else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized || response.StatusCode == System.Net.HttpStatusCode.Forbidden)
            {
                return(await errorResult);
            }
            return(await errorResult);
        }