public async Task GetListingDetail_ExpectListingResponse()
        {
            _listingServiceMock.Setup(x => x.GetListingDetail(1)).ReturnsAsync(() => _sampleListing);

            _imageStorageMock.Setup(
                x => x.TransformImageUrls(It.IsAny <List <Image> >(), ImageType.Listing, It.IsAny <IDevice>())).Returns(
                () => new List <Image>
            {
                new Image {
                    Url = "image1NewUrl"
                }
            });

            var controller = new ListingController(_listingServiceMock.Object, _mapperMock, _appSettingMock.Object,
                                                   _loggerMock.Object,
                                                   _authorizationServiceMock.Object, _imageServiceMock.Object, _bookingServiceMock.Object, _deviceMock.Object,
                                                   _imageStorageMock.Object);

            // Action
            var listing = await controller.GetListingDetail(1);

            // Assert
            listing.Should().NotBeNull();
            listing.Should().BeOfType <ListingResponse>();
            listing.Id.Should().Be(1);
            listing.Header.Should().Be(_sampleListing.Header);
            listing.Description.Should().Be(_sampleListing.Description);
            listing.ImageList.Count.Should().Be(_sampleListing.ImageList.Count);
            listing.ImageList.FirstOrDefault().Url = "image1NewUrl";
        }
        public async Task GetListingDetail_ExpectException()
        {
            _listingServiceMock.Setup(x => x.GetListingDetail(It.IsAny <int>())).ReturnsAsync(() => null);
            var controller = new ListingController(_listingServiceMock.Object, _mapperMock, _appSettingMock.Object,
                                                   _loggerMock.Object,
                                                   _authorizationServiceMock.Object, _imageServiceMock.Object, _bookingServiceMock.Object, _deviceMock.Object,
                                                   _imageStorageMock.Object);

            // Assert
            var ex = await Assert.ThrowsAsync <ArgumentOutOfRangeException>(async() => await controller.GetListingDetail(10000000));

            ex.Message.Should().Be("Can't find listing\r\nParameter name: id");
        }