public void Bind_NamedParameterValueStartsWithDash_BindsProperty() { // arrange var sut = CreateCommandParameterBinder(typeof(NamedParameterCommand)); var command = new NamedParameterCommand(); var input = CreateCommandInput("nam", new ParameterNameCommandParameter("param1"), new LiteralCommandParameter("-value1")); // act var result = sut.Bind(command, input); // assert Assert.True(result.Success); Assert.Equal("-value1", command.NamedParameter1); }
public void Bind_NamedParameterMissingValue_ErrorIncludedInResult() { // arrange var sut = CreateCommandParameterBinder(typeof(NamedParameterCommand)); var command = new NamedParameterCommand(); var input = CreateCommandInput("nam", new ParameterNameCommandParameter("param1")); // act var result = sut.Bind(command, input); // assert Assert.False(result.Success); Assert.Equal(new[] { "Missing value for named parameter 'param1'" }, result.Errors); }
public void Bind_NamedParameterContainsUnsetVariable_ErrorIncludedInResult() { // arrange var sut = CreateCommandParameterBinder(typeof(NamedParameterCommand)); var command = new NamedParameterCommand(); var input = CreateCommandInput("nam", new ParameterNameCommandParameter("param1"), new VariableCommandParameter("foo")); // act var result = sut.Bind(command, input); // assert Assert.False(result.Success); Assert.Equal(new[] { "Variable $foo$ is not set" }, result.Errors); }
public void Bind_UnknownNamedParameter_ErrorIncludedInResult() { // arrange var sut = CreateCommandParameterBinder(typeof(NamedParameterCommand)); var command = new NamedParameterCommand(); var input = CreateCommandInput( "nam", new ParameterNameCommandParameter("invalid"), (LiteralCommandParameter)"value" ); // act var result = sut.Bind(command, input); // assert Assert.False(result.Success); Assert.Equal(new[] { "Unknown named parameter 'invalid'" }, result.Errors); }
public void Bind_NamedParameterDifferentCasing_BindsProperty() { // arrange var sut = CreateCommandParameterBinder(typeof(NamedParameterCommand)); var command = new NamedParameterCommand(); var input = CreateCommandInput( "nam", new ParameterNameCommandParameter("PARAM1"), new LiteralCommandParameter("value1") ); // act var result = sut.Bind(command, input); // assert Assert.True(result.Success); Assert.Equal("value1", command.NamedParameter1); }
public void Bind_DuplicateNamedParameterOnCommand_ErrorIncludedInResult() { // arrange var sut = CreateCommandParameterBinder(typeof(NamedParameterCommand)); var command = new NamedParameterCommand(); var input = CreateCommandInput( "nam", new ParameterNameCommandParameter("param1"), (LiteralCommandParameter)"value1", new ParameterNameCommandParameter("param1"), (LiteralCommandParameter)"value2" ); // act var result = sut.Bind(command, input); // assert Assert.False(result.Success); Assert.Equal(new[] { "Cannot repeat named parameter 'param1'" }, result.Errors); }
public void Bind_NamedParameterContainsVariable_VariableIsReplaced() { // arrange var registry = CreateCommandRegistry(typeof(NamedParameterCommand)); var variables = new VariableCollection(); variables.Set(new ValueVariable("foo", "bar")); var replacer = new VariableReplacer(); var sut = new CommandParameterBinder(registry, replacer, variables); var command = new NamedParameterCommand(); var input = CreateCommandInput("nam", new ParameterNameCommandParameter("param1"), new VariableCommandParameter("foo")); // act var result = sut.Bind(command, input); // assert Assert.True(result.Success); Assert.Equal("bar", command.NamedParameter1); }