public void CanDownloadFromMultipleMirrors() { var mirrorSelector = SetupMultiMirrorSelector(); var downloader = SetupDefaultDownloader(); var mDownloader = new MultiMirrorFileDownloader(downloader, mirrorSelector); Action act = () => mDownloader.Download(new MultiMirrorFileDownloadSpec("a", "C:\\b".ToAbsoluteFilePath())); act.ShouldThrow<HostListExhausted>(); A.CallTo(() => mirrorSelector.Failure(httpHost1)) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => mirrorSelector.Failure(httpHost2)) .MustHaveHappened(Repeated.Exactly.Once); }
public void DownloadSucceedsWhenVerificationSucceeds() { var mirrorSelector = SetupMultiMirrorSelector(); var downloader = A.Fake<IFileDownloader>(); var mDownloader = new MultiMirrorFileDownloader(downloader, mirrorSelector); Action act = () => mDownloader.Download(new MultiMirrorFileDownloadSpec("a", "C:\\b".ToAbsoluteFilePath(), f => true)); act.ShouldNotThrow<HostListExhausted>(); }
public void SuccessDownloadShouldBeRegistered() { var mirrorSelector = SetupDefaultMirrorSelector(); var downloader = A.Fake<IFileDownloader>(); var mDownloader = new MultiMirrorFileDownloader(downloader, mirrorSelector); mDownloader.Download(new MultiMirrorFileDownloadSpec("a", @"C:\temp\a".ToAbsoluteFilePath())); A.CallTo(() => mirrorSelector.GetHost()) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => downloader.Download(new Uri("http://testhost/a"), @"C:\temp\a".ToAbsoluteFilePath())) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => mirrorSelector.Success(httpTesthost)) .MustHaveHappened(Repeated.Exactly.Once); }