示例#1
0
        static void Main(string[] args)
        {
            HttpClient    client       = new HttpClient();
            IPhotoService photoService = new PhotoService(client);

            Console.WriteLine("Which album would you like to retrieve? ");
            int    answer;
            string response    = Console.ReadLine();
            bool   parseResult = int.TryParse(response, out answer);

            if (parseResult)
            {
                var results = photoService.GetAlbumByIdAsync(answer);
                if (results.Result.Any())
                {
                    foreach (var r in results.Result)
                    {
                        Console.WriteLine($"[{r.Id}] {r.Title}");
                    }
                }
                else
                {
                    Console.WriteLine($"No results found for album id {answer}");
                }
            }
            else
            {
                Console.WriteLine($"You entered: {response}. Please enter a number.");
            }
        }
示例#2
0
    public async void GetAlbumById_CallsApiEndpointAsync()
    {
        var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict);
        var response    = new HttpResponseMessage
        {
            StatusCode = HttpStatusCode.OK,
            Content    = new StringContent(@"[
                                             {
                                                ""albumId"": 1,
                                                ""id"": 1,
                                                ""title"": ""accusamus beatae ad facilis cum similique qui sunt"",
                                                ""url"": ""https://via.placeholder.com/600/92c952"",
                                                ""thumbnailUrl"": ""https://via.placeholder.com/150/92c952""
                                             },
                                             {
                                                ""albumId"": 1,
                                                ""id"": 2,
                                                ""title"": ""reprehenderit est deserunt velit ipsam"",
                                                ""url"": ""https://via.placeholder.com/600/771796"",
                                                ""thumbnailUrl"": ""https://via.placeholder.com/150/771796""
                                             }
                                          ]"),
        };

        handlerMock
        .Protected()
        .Setup <Task <HttpResponseMessage> >(
            "SendAsync",
            ItExpr.IsAny <HttpRequestMessage>(),
            ItExpr.IsAny <CancellationToken>())
        .ReturnsAsync(response)
        .Verifiable();
        var httpClient   = new HttpClient(handlerMock.Object);
        var photoService = new PhotoService(httpClient);

        var retrievedPhotos = await photoService.GetAlbumByIdAsync(1);

        Assert.NotNull(retrievedPhotos);
        Assert.Equal(1, retrievedPhotos[0].AlbumId);
        Assert.Equal(1, retrievedPhotos[1].AlbumId);

        Assert.Equal(1, retrievedPhotos[0].Id);
        Assert.Equal(2, retrievedPhotos[1].Id);

        Assert.Equal("accusamus beatae ad facilis cum similique qui sunt", retrievedPhotos[0].Title);
        Assert.Equal("reprehenderit est deserunt velit ipsam", retrievedPhotos[1].Title);

        Assert.Equal("https://via.placeholder.com/600/92c952", retrievedPhotos[0].Url);
        Assert.Equal("https://via.placeholder.com/600/771796", retrievedPhotos[1].Url);

        Assert.Equal("https://via.placeholder.com/150/92c952", retrievedPhotos[0].ThumbnailUrl);
        Assert.Equal("https://via.placeholder.com/150/771796", retrievedPhotos[1].ThumbnailUrl);
    }