ILRepack.IntegrationTests/NuGet/Platform.cs (39 lines of code) (raw):
using System;
using System.Collections.Generic;
using System.Linq;
namespace ILRepack.IntegrationTests.NuGet
{
public class Platform
{
public IEnumerable<Package> Packages { get; private set; } = Enumerable.Empty<Package>();
public IEnumerable<String> Args { get; private set; } = Enumerable.Empty<string>();
public static Platform From(IEnumerable<Package> packages)
{
return new Platform() { Packages = packages };
}
public static Platform From(params Package[] packages)
{
return From((IEnumerable<Package>)packages);
}
public IEnumerable<Platform> WithFwks(IEnumerable<string> fwks)
{
return fwks.Select(fwk => WithFwk(fwk));
}
public IEnumerable<Platform> WithFwks(params string[] fwks)
{
return WithFwks((IEnumerable<string>)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);
}
}
}