BinaryStudio.ClientManager.DomainModel.Tests.Input.MailMessagePersisterTests.Should_SaveMailMessageToRepository_WhenEmployeeSendMessageToClientWithCarbonCopyToOurSystem C# (CSharp) Метод

Should_SaveMailMessageToRepository_WhenEmployeeSendMessageToClientWithCarbonCopyToOurSystem() приватный Метод

        public void Should_SaveMailMessageToRepository_WhenEmployeeSendMessageToClientWithCarbonCopyToOurSystem()
        {
            //arrange
            aeEmailClient.GetUnreadMessages().Returns(new List<MailMessage>
                {
                    new MailMessage
                    {
                        Body = "a",
                        Date = Clock.Now,
                        Subject = "s",
                        Sender = new MailAddress("[email protected]","employee"),
                        Receivers = new List<MailAddress>{new MailAddress("[email protected]","client")},
                    }
                });
            var employee = new Person
                               {
                                   Email = "[email protected]",
                                   FirstName = "employee",
                                   Role = PersonRole.Employee
                               };

            repository.Query<Person>().ReturnsForAnyArgs(new List<Person>
                {
                    employee,
                    new Person
                        {
                            Email="[email protected]",
                            FirstName = "client",
                            Role = PersonRole.Client
                        }
                }.AsQueryable());
            repository.Query<User>().ReturnsForAnyArgs(new List<User>{new User
                                                           {
                                                               RelatedPerson = employee,
                                                               CurrentTeam = new Team()
                                                           }
                                                       }.AsQueryable());

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

            //assert
            repository.Received().Save(Arg.Is<Entities.MailMessage>(x => x.Sender.Email == "[email protected]"
                && x.Receivers.Any(receiver => receiver.Email == "[email protected]")
                && x.Receivers.Count == 1));
        }