public async Task AutoMap_Correctly_Maps_CamerName()
        {
            //Arrange
            var cameras = Builder <PhotoCamera> .CreateListOfSize(3)
                          .All().Set(x => x.Name, CameraName.Fhaz)
                          .BuildList();

            var spiritPhotos = Builder <Photo> .CreateListOfSize(2)
                               .All().Set(x => x.Rover.Name, RoverName.Spirit)
                               .All().Set(x => x.Camera, Pick.RepeatingSequenceFrom(cameras).Next)
                               .All().Set(x => x.Camera.FullName, CameraFullName.FrontHazardAvoidanceCamera)
                               .BuildList();

            var apiResonse = new MarsRoverApiResponse()
            {
                Photos = spiritPhotos.ToArray()
            };

            _mockedService.
            Setup(arg => arg.GetRoverImageByRoverNameAndDateAsync(RoverName.Spirit.ToString(), _roverInput.ImageDate))
            .ReturnsAsync(apiResonse);
            //Act
            var result =
                await _mockedService.Object.GetRoverImageByRoverNameAndDateFromCacheAsync(
                    RoverName.Spirit.ToString(), _roverInput);

            //Assert
            result.Count().ShouldBe(2);
            result.Count(x => x.CameraName == CameraName.Fhaz).ShouldBe(2);
        }
        public async Task AutoMap_Correctly_Maps_FilePath()
        {
            //Arrange
            var rovers = Builder <Rover> .CreateListOfSize(3)
                         .All().Set(x => x.Name, RoverName.Spirit)
                         .BuildList();

            var cameras = Builder <PhotoCamera> .CreateListOfSize(3)
                          .All().Set(x => x.Name, CameraName.Fhaz)
                          .BuildList();

            var spiritPhotos = Builder <Photo> .CreateListOfSize(2)
                               .All().Set(x => x.ImgSrc, new Uri("http://test.com/urt.jpg"))
                               .TheFirst(1).Set(x => x.EarthDate, new DateTime(2017, 1, 1))
                               .TheNext(1).Set(x => x.EarthDate, new DateTime(2017, 1, 2))
                               .All().Set(x => x.Rover, Pick.RepeatingSequenceFrom(rovers).Next)
                               .All().Set(x => x.Camera, Pick.RepeatingSequenceFrom(cameras).Next)
                               .All().Set(x => x.Camera.FullName, CameraFullName.FrontHazardAvoidanceCamera)
                               .BuildList();

            var apiResonse = new MarsRoverApiResponse()
            {
                Photos = spiritPhotos.ToArray()
            };

            _mockedService.
            Setup(arg => arg.GetRoverImageByRoverNameAndDateAsync(RoverName.Spirit.ToString(), _roverInput.ImageDate))
            .ReturnsAsync(apiResonse);
            //Act
            var result =
                await _mockedService.Object.GetRoverImageByRoverNameAndDateFromCacheAsync(
                    RoverName.Spirit.ToString(), _roverInput);

            //Assert
            result.Count().ShouldBe(2);
            result[0].FilePath.ShouldBe("2017-01-01_Spirit_Fhaz_urt.jpg");
        }