public void Parse_should_set_property_values_to_matching_named_arguments() { // arrange ArgumentSet args = ArgumentSet.Parse(new[] {"-connection", "joshua", "-v", "123"}); var opts = new MockCommandArgs(); // act opts.Parse(args); // assert Assert.AreEqual("joshua", opts.Connection); Assert.AreEqual(123, opts.TargetVersion); }
public void Parse_should_set_property_values_by_position_of_anonymous_arguments() { // arrange ArgumentSet args = ArgumentSet.Parse(new[] {"joshua", "2"}); var opts = new MockCommandArgs(); // act opts.Parse(args); // assert Assert.AreEqual("joshua", opts.Connection); Assert.AreEqual(2, opts.TargetVersion); }
public void Parse_should_override_anonymous_arguments_with_named_arguments() { // arrange ArgumentSet args = ArgumentSet.Parse(new[] {"joshua", "2", "-connection", "david", "-v", "123"}); var opts = new MockCommandArgs(); // act opts.Parse(args); // assert Assert.AreEqual("david", opts.Connection); Assert.AreEqual(123, opts.TargetVersion); }
public void Run_should_throw_InvalidOperationException_if_args_are_not_valid() { // arrange var cmd = new MockCommand1(); cmd.Log = new MockLog1(); ArgumentSet argSet = ArgumentSet.Parse(new[] { "blah" }); var args = new MockCommandArgs(); args.Parse(argSet); // act var ex = Assert.Throws<InvalidOperationException>(() => cmd.Run(args)); Assert.AreEqual("Argument validation failed. Arguments are invalid.", ex.Message); }
public void Parse_should_validate_properties() { // arrange ArgumentSet args = ArgumentSet.Parse(new[] {"-v", "1"}); var opts = new MockCommandArgs(); // act opts.Parse(args); // assert Assert.IsFalse(opts.IsValid); }
public void Parse_should_validate_arguments_and_add_error_messages_to_collection() { // arrange ArgumentSet args = ArgumentSet.Parse(new[] {"-v", "0"}); var opts = new MockCommandArgs(); // act opts.Parse(args); // assert Assert.AreEqual(2, opts.Errors.Count()); Assert.AreEqual("Connection is required", opts.Errors.First()); Assert.AreEqual("Target version must be between 1 and 5", opts.Errors.Last()); }