public void TestNullablesBasic()
{
NullableArgs parsed;
parsed = Args.Parse<NullableArgs>("-OptionalNumber", "100");
Assert.IsTrue(parsed.OptionalNumber.HasValue);
Assert.IsFalse(parsed.OptionalCharacter.HasValue);
Assert.IsFalse(parsed.OptionalGuid.HasValue);
Assert.AreEqual(100, parsed.OptionalNumber.Value);
parsed = Args.Parse<NullableArgs>();
Assert.IsFalse(parsed.OptionalNumber.HasValue);
Assert.IsFalse(parsed.OptionalCharacter.HasValue);
Assert.IsFalse(parsed.OptionalGuid.HasValue);
parsed = Args.Parse<NullableArgs>("-OptionalGuid", "E4BA2178-3367-4AA0-89B2-E08168378FE0");
Assert.IsFalse(parsed.OptionalNumber.HasValue);
Assert.IsFalse(parsed.OptionalCharacter.HasValue);
Assert.IsTrue(parsed.OptionalGuid.HasValue);
Assert.AreEqual(Guid.Parse("E4BA2178-3367-4AA0-89B2-E08168378FE0"), parsed.OptionalGuid.Value);
try
{
Args.SearchAssemblyForRevivers();
parsed = Args.Parse<NullableArgs>("-OptionalGuid", "A bad Guid");
Assert.Fail("An exception should have been thrown");
}
catch(ValidationArgException ex)
{
Assert.IsTrue(ex.Message.Contains("CUSTOM MESSAGE"));
}
}