public async Task Archiving_GivenTransportFailures_GivesUpAfterThreeFailures()
        {
            var pictures = new []
            {
                new PictureModel
                {
                    AbsolutePath = $"/dev/null/0.jpg",
                    FileName     = $"0.jpg",
                    FileId       = Guid.NewGuid(),
                    ImageId      = Guid.NewGuid(),
                    LibraryCount = 1
                }
            };

            _lightroom.GetCatalogId().Returns(Guid.NewGuid());
            _lightroom.GetAllPictures().Returns(pictures);
            _avalanche.FileIsArchived(Arg.Any <Guid>()).ReturnsForAnyArgs(false);

            _glacier.SaveImage(Arg.Any <PictureModel>(), Arg.Any <string>())
            .Returns(SaveImageFails, SaveImageFails, SaveImageFails);

            var result = await _sut.Run();

            _avalanche.DidNotReceive()
            .MarkFileAsArchived(Arg.Any <ArchivedPictureModel>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>());
            Assert.Equal(1, result.Failures.Count);
        }
        public async Task Archiving_GivenTransportFailures_GivesUpAfterThreeFailures()
        {
            var pictures = GetPictures(1).ToList();

            _lightroom.GetAllPictures().Returns(pictures);
            _avalanche.FileIsArchived(Arg.Any <Guid>()).ReturnsForAnyArgs(false);

            _glacier.SaveImage(Arg.Any <PictureModel>(), Arg.Any <string>())
            .Returns(SaveImageFails, SaveImageFails, SaveImageFails);

            var result = await _sut.Run();

            _avalanche.DidNotReceive()
            .MarkFileAsArchived(Arg.Any <ArchivedPictureModel>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>());
            Assert.Equal(1, result.Failures.Count);
        }