Exemplo n.º 1
0
        public void Invoke_ValidData_AddsEmailMessageToDatabaseWithCorrectValues()
        {
            // prepare
            var emailMessage = new EmailMessageModel
            {
                From      = "*****@*****.**",
                Recipient = "*****@*****.**",
                Subject   = "subject",
                Message   = "message"
            };

            EmailMessage emailMessageFromDb           = null;
            var          mockedEmailMessageRepository = new Mock <IEmailRepository>();

            mockedEmailMessageRepository.Setup(r => r.Add(It.IsAny <EmailMessage>()))
            .Callback <EmailMessage>(u => emailMessageFromDb = u);
            var mockedUnitOfWork = new Mock <IUnitOfWork>();

            var action = new AddNewEmailMessage(mockedEmailMessageRepository.Object, mockedUnitOfWork.Object);

            // action
            var result = action.Invoke(emailMessage);

            // assert
            Assert.True(result);
            Assert.Equal("*****@*****.**", emailMessageFromDb.From);
            Assert.Equal("*****@*****.**", emailMessageFromDb.Recipient);
            Assert.Equal("subject", emailMessageFromDb.Subject);
            Assert.Equal("message", emailMessageFromDb.Message);
            Assert.Equal(0, emailMessageFromDb.FailureCount);

            mockedEmailMessageRepository.Verify(r => r.Add(It.IsAny <EmailMessage>()), Times.Once);
            mockedUnitOfWork.Verify(r => r.Save(), Times.Once);
        }
Exemplo n.º 2
0
        public void Invoke_InvalidData_AddNorSaveAreCalled()
        {
            // prepare
            var emailMessageToAdd            = new EmailMessageModel();
            var mockedEmailMessageRepository = new Mock <IEmailRepository>();
            var mockedUnitOfWork             = new Mock <IUnitOfWork>();

            var action = new AddNewEmailMessage(mockedEmailMessageRepository.Object, mockedUnitOfWork.Object);

            // action
            var result = action.Invoke(emailMessageToAdd);

            // assert
            Assert.False(result);
            mockedEmailMessageRepository.Verify(r => r.Add(It.IsAny <EmailMessage>()), Times.Never);
            mockedUnitOfWork.Verify(r => r.Save(), Times.Never);
        }