public void Should_ReturnMailMessageWithRightData_WhenCallingConvertForMailWithExistingClientAndEmloyees()
{
//arrange
var receiver1 = new MailAddress("[email protected]", "Employee Petrov");
var receiver2 = new MailAddress("[email protected]", "Employee Kozlov");
var mailMessage = Builder<MailMessage>.CreateNew()
.With(x => x.Date = GetRandom.DateTime())
.With(x => x.Sender = new MailAddress("[email protected]", "Client Ivanov"))
.With(x => x.Receivers = new List<MailAddress> {receiver1, receiver2})
.Build();
var persons = Builder<Person>.CreateListOfSize(3)
.All().With(x => x.CreationDate = GetRandom.DateTime())
.TheFirst(1)
.With(x => x.Role = PersonRole.Client)
.With(x => x.FirstName = "Client")
.With(x => x.LastName = "Ivanov")
.With(x => x.Email = "[email protected]")
.TheNext(1)
.With(x => x.Role = PersonRole.Employee)
.With(x => x.FirstName = "Employee")
.With(x => x.LastName = "Petrov")
.With(x => x.Email = "[email protected]")
.TheNext(1)
.With(x => x.Role = PersonRole.Employee)
.With(x => x.FirstName = "Employee")
.With(x => x.LastName = "Kozlov")
.With(x => x.Email = "[email protected]")
.Build();
repository.Query<Person>().ReturnsForAnyArgs(persons.AsQueryable());
//act
var result = mailMessagePersister.Convert(mailMessage);
//assert
Assert.That(result.Body == mailMessage.Body &&
result.Subject == mailMessage.Subject &&
result.Date == mailMessage.Date &&
result.Sender == persons[0] &&
result.Receivers.Count == 2 &&
result.Receivers.Contains(persons[1]) &&
result.Receivers.Contains(persons[2]));
}