Ejemplo n.º 1
0
        public async Task ExecuteAsync_ExecutesCommand()
        {
            var documentProcessorMock = new Mock <IDocumentProcessor>();
            var command     = new CommandForTest(documentProcessorMock.Object);
            var commandText = "command";
            var modifiers   = new[]
            {
                new Modifier {
                    Name = "1"
                }, new Modifier {
                    Name = "2"
                }, new Modifier {
                    Name = "3"
                }
            };
            var commandSubject = new DocumentIdSubject {
                Id = "subject"
            };

            command.SetParameters(commandText, commandSubject, modifiers);
            await command.ExecuteAsync();

            var exp = modifiers.Select(parameter => new ActionParameter
            {
                Name = parameter.Name,
                Data = parameter.Arguments
            }).ToArray();

            documentProcessorMock.Verify(
                it => it.ProcessAsync(commandSubject, ActionType.GetContent,
                                      It.Is <ActionParameter[]>(p => CompareActionParameters(p, exp))), Times.Once);
        }
Ejemplo n.º 2
0
        public void SetParameters_ValidParameters_SetsParameters()
        {
            var documentProcessorStub = new Mock <IDocumentProcessor>();
            var command     = new CommandForTest(documentProcessorStub.Object);
            var commandText = "command";
            var modifiers   = new[]
            {
                new Modifier {
                    Name = "1"
                }, new Modifier {
                    Name = "2"
                }, new Modifier {
                    Name = "3"
                }
            };
            var commandSubject = new DocumentIdSubject {
                Id = "subject"
            };

            command.SetParameters(commandText, commandSubject, modifiers);

            Assert.Equal(commandText, command.CommandText);
            Assert.Equal(commandSubject, command.Subject);
            Assert.Equal(modifiers, command.Modifiers);
        }
Ejemplo n.º 3
0
        public void CommandBase_ValidParameters_CreatesNewInstance()
        {
            var documentProcessorStub = new Mock <IDocumentProcessor>();
            var before  = DateTime.Now;
            var command = new CommandForTest(documentProcessorStub.Object);
            var after   = DateTime.Now;

            Assert.True(command.CreationDate >= before && command.CreationDate <= after);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }