public static void ValidateOption <T>(ArgumentSyntax syntax, string name, T value) { var arg = syntax.GetActiveOptions() .Where(p => p.Names.Any(n => n == name)) .OfType <Argument <T> >() .FirstOrDefault(); Assert.NotNull(arg); Assert.Equal(value, arg.Value); }
public static T GetOption<T>(this ArgumentSyntax syntax, string name, bool isRequired = false) { var firstName = name.Split('|').First(); var values = syntax.GetActiveOptions() .OfType<Argument<T>>() .Where(a => firstName.Equals(a.Name, StringComparison.Ordinal)) .Select(a => a.Value); if (isRequired && values.All(v => Equals(v, default(T)))) { syntax.ReportError(string.Format(Strings.ErrorOptionMissing, name)); } return values.FirstOrDefault(); }