public static DownloadStrategy GetEffectiveDownloadStrategy(DownloadArguments dlArgs, bool preferNuget, bool forceNuget) { var gitHubDownloadStrategy = new GitHubDownloadStrategy(new WebRequestProxy(), new FileSystemProxy()).AsCached(dlArgs.IgnoreCache); var nugetDownloadStrategy = new NugetDownloadStrategy(new WebRequestProxy(), new FileSystemProxy(), dlArgs.Folder, dlArgs.NugetSource).AsCached(dlArgs.IgnoreCache); DownloadStrategy effectiveStrategy; if (forceNuget) { effectiveStrategy = nugetDownloadStrategy; nugetDownloadStrategy.FallbackStrategy = null; } else if (preferNuget) { effectiveStrategy = nugetDownloadStrategy; nugetDownloadStrategy.FallbackStrategy = gitHubDownloadStrategy; } else { effectiveStrategy = gitHubDownloadStrategy; gitHubDownloadStrategy.FallbackStrategy = nugetDownloadStrategy; } return effectiveStrategy.AsTemporarilyIgnored(dlArgs.MaxFileAgeInMinutes, dlArgs.Target); }
public static IDownloadStrategy GetEffectiveDownloadStrategy(DownloadArguments dlArgs, bool preferNuget, bool forceNuget) { var gitHubDownloadStrategy = new GitHubDownloadStrategy(new WebRequestProxy(), new FileProxy()).AsCached(dlArgs.IgnoreCache); var nugetDownloadStrategy = new NugetDownloadStrategy(new WebRequestProxy(), new DirectoryProxy(), new FileProxy(), dlArgs.Folder, dlArgs.NugetSource).AsCached(dlArgs.IgnoreCache); IDownloadStrategy effectiveStrategy; if (forceNuget) { effectiveStrategy = nugetDownloadStrategy; nugetDownloadStrategy.FallbackStrategy = null; } else if (preferNuget) { effectiveStrategy = nugetDownloadStrategy; nugetDownloadStrategy.FallbackStrategy = gitHubDownloadStrategy; } else { effectiveStrategy = gitHubDownloadStrategy; gitHubDownloadStrategy.FallbackStrategy = nugetDownloadStrategy; } return effectiveStrategy; }
public void Setup() { mockWebProxy = new Mock <IWebRequestProxy>(); mockFileProxy = new Mock <IFileSystemProxy>(); sut = new GitHubDownloadStrategy(mockWebProxy.Object, mockFileProxy.Object); }