public void Validate_ValidParameters_ValidValidationResult() { var documentProcessorStub = new Mock <IDocumentProcessor>(); var command = new CommandForTest(documentProcessorStub.Object); var commandText = "print"; var commandSubject = new DocumentIdSubject { Id = "test" }; var modifiers = new[] { new Modifier { Name = "decrypt" } }; command.SetParameters(commandText, commandSubject, modifiers); var validationResult = command.Validate(); Assert.True(validationResult.IsValid); Assert.Null(validationResult.ValidationMessage); }
public void Validate_DuplicatedParameters_InvalidValidationResult() { var documentProcessorStub = new Mock <IDocumentProcessor>(); var command = new CommandForTest(documentProcessorStub.Object); var commandText = "print"; var commandSubject = new DocumentIdSubject { Id = "test" }; var modifiers = new[] { new Modifier { Name = "decrypt" }, new Modifier { Name = "decrypt" } }; command.SetParameters(commandText, commandSubject, modifiers); var validationResult = command.Validate(); Assert.False(validationResult.IsValid); Assert.Equal("Invalid command modifiers: duplicates found", validationResult.ValidationMessage); }
public void Validate_InvalidParameters_InvalidValidationResult() { var documentProcessorStub = new Mock <IDocumentProcessor>(); var command = new CommandForTest(documentProcessorStub.Object); var commandText = CommandType.GetContent.ToString(); var commandSubject = new DocumentIdSubject { Id = "test" }; var modifiers = new[] { new Modifier { Name = "decrypt" }, new Modifier { Name = "encrypt" } }; command.SetParameters(commandText, commandSubject, modifiers); var validationResult = command.Validate(); Assert.False(validationResult.IsValid); Assert.Equal($"Invalid command modifiers: parameter 'encrypt' can't be used with the '{CommandType.GetContent.ToString().ToLower()}' command", validationResult.ValidationMessage); }