ILRepack.IntegrationTests/NuGet/Package.cs (35 lines of code) (raw):

using System; using System.IO; namespace ILRepack.IntegrationTests.NuGet { public class Package { public string Name {get; private set;} public string Version {get; private set;} public Func<string, bool> AssembliesMatcher {get; private set;} public Package WithFwk(string fwk) { return WithArtifact($"lib{Path.DirectorySeparatorChar}{fwk}{Path.DirectorySeparatorChar}{this.Name}.dll"); } public Package WithArtifact(string artifact) { return WithMatcher(file => String.Equals(file, artifact.Replace('/', Path.DirectorySeparatorChar), StringComparison.InvariantCultureIgnoreCase)); } public Package WithMatcher(Func<string, bool> matcher) { return new Package { Name = this.Name, Version = this.Version, AssembliesMatcher = matcher }; } public bool Matches<T>(Tuple<string, T> item) { return AssembliesMatcher(item.Item1); } public static Package From(string name, string version) { return new Package { Name = name, Version = version }; } public override string ToString() { return $"{Name}:{Version}"; } } }