public void CanDownloadFromMultipleMirrorsAsync() { var mirrorSelector = SetupMultiMirrorSelector(); var downloader = SetupDefaultDownloader(); var mDownloader = new MultiMirrorFileDownloader(downloader, mirrorSelector); Func <Task> act = () => mDownloader.DownloadAsync(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 async Task SuccessDownloadAsyncShouldBeRegistered() { var mirrorSelector = SetupDefaultMirrorSelector(); var downloader = A.Fake <IFileDownloader>(); var mDownloader = new MultiMirrorFileDownloader(downloader, mirrorSelector); await mDownloader.DownloadAsync(new MultiMirrorFileDownloadSpec("a", @"C:\temp\a".ToAbsoluteFilePath())); A.CallTo(() => mirrorSelector.GetHost()) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => downloader.DownloadAsync(new Uri("http://testhost/a"), @"C:\temp\a".ToAbsoluteFilePath())) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => mirrorSelector.Success(httpTesthost)) .MustHaveHappened(Repeated.Exactly.Once); }