Represents e-mail message domain input
        public void Should_ReturnBodyFromOriginalMessage_WnehCalledGetBody(string body, string originalBody)
        {
            //arrange
            var mailMessage = new MailMessage
            {
                Body = body,
            };
            var mailMessageParser = new MailMessageParserThunderbird();

            //act
            var result = mailMessageParser.GetBody(mailMessage);

            //assert
            result.Should().Be(originalBody);
        }
        public void Should_ReturnSenderMailAddressFromBody_WnehCalledGetSenderFromForwardedMail(string body, string mailAddress)
        {
            //arrange
            var mailMessage = new MailMessage
            {
                Body = body,
            };
            var mailMessageParser = new MailMessageParserThunderbird();

            //act
            var result = mailMessageParser.GetSender(mailMessage);

            //assert
            result.Address.Should().Be(mailAddress);
        }
Esempio n. 3
0
        public void Should_ReturnBodyFromOriginalMessage_WnehCalledGetBody(string body, string originalBody)
        {
            //arrange
            var mailMessage = new MailMessage
            {
                Body = body,
            };
            var mailMessageParser = new MailMessageParserThunderbird();

            //act
            var result = mailMessageParser.GetBody(mailMessage);

            //assert
            result.Should().Be(originalBody);
        }
Esempio n. 4
0
        public void Should_ReturnSenderMailAddressFromBody_WnehCalledGetSenderFromForwardedMail(string body, string mailAddress)
        {
            //arrange
            var mailMessage = new MailMessage
            {
                Body = body,
            };
            var mailMessageParser = new MailMessageParserThunderbird();

            //act
            var result = mailMessageParser.GetSender(mailMessage);

            //assert
            result.Address.Should().Be(mailAddress);
        }
Esempio n. 5
0
        public void Should_ThrowException_WhenCalledGetSenderWithNoEmailAddressInBody()
        {
            //arrange
            var mailMessage = new MailMessage
            {
                Body = "No email addresses there"
            };
            var mailMessageParser = new MailMessageParserThunderbird();

            //act
            Action action = () => mailMessageParser.GetSender(mailMessage);

            //assert
            action
            .ShouldThrow <ApplicationException>()
            .WithMessage("Forwarded message has illegal format");
        }
        public void Should_ThrowException_WhenCalledGetSenderWithNoEmailAddressInBody()
        {
            //arrange
            var mailMessage = new MailMessage
                                  {
                                      Body = "No email addresses there"
                                  };
            var mailMessageParser = new MailMessageParserThunderbird();

            //act
            Action action = () => mailMessageParser.GetSender(mailMessage);

            //assert
            action
                .ShouldThrow<ApplicationException>()
                .WithMessage("Forwarded message has illegal format");
        }
        public void Should_SaveMailMessageToRepositoryAndCreateAndSaveInquiry_WhenClientSendMessageToEmployeeWithCarbonCopyToOurSystem()
        {
            //arrange
            var mailMessage = new MailMessage
                {
                    Body = "a",
                    Date = Clock.Now,
                    Subject = "s",
                    Sender = new MailAddress("*****@*****.**", "client"),
                    Receivers =
                        new List<MailAddress> {new MailAddress("*****@*****.**", "employee")},
                };
            aeEmailClient.GetUnreadMessages().Returns(new List<MailMessage>
                {
                    mailMessage
                }.AsQueryable());
            var employeePerson = new Person
                                     {
                                         Email = "*****@*****.**",
                                         FirstName = "employee",
                                         Role = PersonRole.Employee
                                     };
            repository.Query<Person>().ReturnsForAnyArgs(new List<Person>
                {
                    employeePerson,
                    new Person
                        {
                            Email="*****@*****.**",
                            FirstName = "client",
                            Role = PersonRole.Client
                        }
                }.AsQueryable());

            repository.Query<User>().ReturnsForAnyArgs(new List<User>
                                                           {
                                                               new User
                                                                   {
                                                                       RelatedPerson = employeePerson,
                                                                       CurrentTeam = new Team
                                                                                         {
                                                                                             Name = "1"
                                                                                         }
                                                                   }
                                                           }.AsQueryable());
            repository.Query<Inquiry>().ReturnsForAnyArgs(new List<Inquiry>().AsQueryable());

            //act
            mailMessagePersister.ProcessMessage(aeEmailClient, EventArgs.Empty);

            //assert
            repository.Received().Save(Arg.Is<Entities.MailMessage>(x => x.Sender.Email == "*****@*****.**"
                && x.Receivers.Any(receiver => receiver.Email == "*****@*****.**")
                && x.Receivers.Count == 1));
            repository.Received().Save(Arg.Is<Inquiry>(x=>x.Subject=="s" &&
                x.ReferenceDate==null &&
                x.Client.Email=="*****@*****.**" &&
                x.Client.FirstName=="client" &&
                x.Client.Role==PersonRole.Client));
        }
Esempio n. 8
0
        public void Should_SaveMailMessageToRepositoryAndCreateAndSaveInquiry_WhenClientSendMessageToEmployeeWithCarbonCopyToOurSystem()
        {
            //arrange
            var mailMessage = new MailMessage
            {
                Body      = "a",
                Date      = Clock.Now,
                Subject   = "s",
                Sender    = new MailAddress("*****@*****.**", "client"),
                Receivers =
                    new List <MailAddress> {
                    new MailAddress("*****@*****.**", "employee")
                },
            };

            aeEmailClient.GetUnreadMessages().Returns(new List <MailMessage>
            {
                mailMessage
            }.AsQueryable());
            var employeePerson = new Person
            {
                Email     = "*****@*****.**",
                FirstName = "employee",
                Role      = PersonRole.Employee
            };

            repository.Query <Person>().ReturnsForAnyArgs(new List <Person>
            {
                employeePerson,
                new Person
                {
                    Email     = "*****@*****.**",
                    FirstName = "client",
                    Role      = PersonRole.Client
                }
            }.AsQueryable());

            repository.Query <User>().ReturnsForAnyArgs(new List <User>
            {
                new User
                {
                    RelatedPerson = employeePerson,
                    CurrentTeam   = new Team
                    {
                        Name = "1"
                    }
                }
            }.AsQueryable());
            repository.Query <Inquiry>().ReturnsForAnyArgs(new List <Inquiry>().AsQueryable());

            //act
            mailMessagePersister.ProcessMessage(aeEmailClient, EventArgs.Empty);

            //assert
            repository.Received().Save(Arg.Is <Entities.MailMessage>(x => x.Sender.Email == "*****@*****.**" &&
                                                                     x.Receivers.Any(receiver => receiver.Email == "*****@*****.**") &&
                                                                     x.Receivers.Count == 1));
            repository.Received().Save(Arg.Is <Inquiry>(x => x.Subject == "s" &&
                                                        x.ReferenceDate == null &&
                                                        x.Client.Email == "*****@*****.**" &&
                                                        x.Client.FirstName == "client" &&
                                                        x.Client.Role == PersonRole.Client));
        }