Beispiel #1
0
        public async Task Will_return_correctly_correlated_models_from_APIs()
        {
            var photos = new List <Photo>()
            {
                new Photo()
                {
                    AlbumId      = 1,
                    Title        = "Photo 1",
                    ThumbnailUrl = new Uri("http://localhost/photo/thumb/1"),
                    Url          = new Uri("http://localhost/photo/1")
                },
                new Photo()
                {
                    AlbumId      = 1,
                    Title        = "Photo 2",
                    ThumbnailUrl = new Uri("http://localhost/photo/thumb/2"),
                    Url          = new Uri("http://localhost/photo/2")
                }
            };

            var albums = new List <Album>()
            {
                new Album()
                {
                    Id    = 1,
                    Title = "Album 1",
                }
            };

            var photosApi = new Mock <IPhotosApi>();
            var albumsApi = new Mock <IAlbumsApi>();

            photosApi.Setup(p => p.GetPhotos(CancellationToken.None)).ReturnsAsync(photos);
            albumsApi.Setup(a => a.GetAlbums(CancellationToken.None)).ReturnsAsync(albums);

            var handler = new GetPhotosHandler(photosApi.Object, albumsApi.Object);

            var result = await handler.Handle(new GetPhotos(), CancellationToken.None);

            result.Should()
            .BeEquivalentTo(new[]
            {
                new PhotoViewModel()
                {
                    PhotoTitle   = "Photo 1",
                    AlbumName    = "Album 1",
                    ThumbnailUrl = new Uri("http://localhost/photo/thumb/1"),
                    Url          = new Uri("http://localhost/photo/1"),
                },
                new PhotoViewModel()
                {
                    PhotoTitle   = "Photo 2",
                    AlbumName    = "Album 1",
                    ThumbnailUrl = new Uri("http://localhost/photo/thumb/2"),
                    Url          = new Uri("http://localhost/photo/2"),
                }
            });
        }
Beispiel #2
0
        public void Handler_wraps_API_Exception_in_application_exception()
        {
            var photosApi = new Mock <IPhotosApi>();
            var albumsApi = new Mock <IAlbumsApi>();

            photosApi.Setup(p => p.GetPhotos(CancellationToken.None))
            .ThrowsAsync(new ApiException(new System.Net.Http.HttpRequestMessage(), new System.Net.Http.HttpResponseMessage(), ""));

            var handler = new GetPhotosHandler(photosApi.Object, albumsApi.Object);

            Func <Task> testHandler = () => handler.Handle(new GetPhotos(), CancellationToken.None);

            testHandler.Should().ThrowExactly <RunpathAlbumWebException>();
        }