using System; using System.Collections.Generic; using System.Linq; namespace ILRepack.IntegrationTests.NuGet { public class Platform { public IEnumerable Packages { get; private set; } = Enumerable.Empty(); public IEnumerable Args { get; private set; } = Enumerable.Empty(); public static Platform From(IEnumerable packages) { return new Platform() { Packages = packages }; } public static Platform From(params Package[] packages) { return From((IEnumerable)packages); } public IEnumerable WithFwks(IEnumerable fwks) { return fwks.Select(fwk => WithFwk(fwk)); } public IEnumerable WithFwks(params string[] fwks) { return WithFwks((IEnumerable)fwks); } public Platform WithFwk(string fwk) { return From(Packages.Select(p => p.WithFwk(fwk))); } public Platform WithExtraArgs(params string[] args) { return new Platform { Packages = this.Packages, Args = this.Args.Concat(args) }; } public override string ToString() { return string.Join(",", Packages); } } }