Skip to content

Instantly share code, notes, and snippets.

@BryanWilhite
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BryanWilhite/1baba5e63d57c608da83 to your computer and use it in GitHub Desktop.
Save BryanWilhite/1baba5e63d57c608da83 to your computer and use it in GitHub Desktop.
ShouldGetNuGetPackageFile() uses DefaultPackagePathResolver from NuGet.Core
/// <summary>
/// Test context extensions: should get nu get package file.
/// </summary>
/// <param name="context">The context.</param>
/// <param name="packageMeta">The package meta.</param>
/// <param name="sourceControlRoot">The source control root.</param>
/// <param name="searchPattern">The search pattern.</param>
public static string ShouldGetNuGetPackageFile(this TestContext context, IEnumerable<string> packageMeta, string sourceControlRoot, string searchPattern)
{
Assert.IsNotNull(packageMeta, "The expected package metadata is not here.");
context.ShouldFindFolder(sourceControlRoot);
Assert.IsFalse(string.IsNullOrEmpty(searchPattern), "The expected package-file search pattern is not here.");
var nugetRoot = Path.Combine(sourceControlRoot, "packages");
context.ShouldFindFolder(nugetRoot);
var meta = packageMeta.ToArray();
Assert.AreEqual(2, meta.Length, "The expected number of package meta items are not here.");
var resolver = new DefaultPackagePathResolver(nugetRoot);
var packageDirectory = resolver.GetPackageDirectory(meta[0], new SemanticVersion(meta[1]));
var searchRoot = Path.Combine(nugetRoot, packageDirectory);
searchPattern = string.Format(searchPattern, meta[0]);
var path = Directory.GetFiles(searchRoot, searchPattern, SearchOption.AllDirectories).FirstOrDefault();
context.ShouldFindFile(path);
return path;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment