/// <summary> /// Gets the filtered people with their countries. /// </summary> /// <param name="filter">The filter.</param> /// <returns></returns> public IEnumerable <DtoModels.Person> GetFilteredPeopleWithTheirCountries(DtoModels.PersonFilter filter) { var lastName = filter.LastName; var startBirthday = filter.StartBirthday; var endBirthday = filter.EndBirthday; var countryId = filter.Country?.Id; var personDbModels = _repository.GetFilteredPeopleWithTheirCountries(lastName, startBirthday, endBirthday, countryId); var personDtoModels = personDbModels.Select(p => (DtoModels.Person)p.ConvertToDtoModel()).ToList(); return(personDtoModels); }
public void GetFilteredPeopleWithTheirCountriesByFullFilters() { // Arrange var unitOfWorkFactoryMock = new Mock <IUnitOfWorkFactory <NotebookDbContext> >(); var personRepositoryMock = new Mock <IPersonRepository>(); var testPeople = GetTestPeople().ToList(); personRepositoryMock.Setup(r => r.GetAllPeopleWithTheirCountries()).Returns(testPeople); var personService = new PersonService(unitOfWorkFactoryMock.Object, personRepositoryMock.Object); var firstTestPerson = testPeople.First(); var filter = new DtoModels.PersonFilter { LastName = firstTestPerson.LastName[firstTestPerson.LastName.Length - 1].ToString(), EndBirthday = firstTestPerson.Birthday + TimeSpan.FromDays(10), StartBirthday = firstTestPerson.Birthday - TimeSpan.FromDays(10), Country = new DtoModels.Country { Id = firstTestPerson.Country.Id, Name = firstTestPerson.Country.Name } }; // Act var result = personService.GetFilteredPeopleWithTheirCountries(filter); // Assert Assert.All(result, item => Assert.NotNull(item)); Assert.All(result, item => Assert.NotNull(item.Birthday)); Assert.All(result, item => Assert.NotNull(item.Country)); Assert.All(result, item => Assert.Contains(item.LastName, filter.LastName)); Assert.All(result, item => Assert.InRange(item.Birthday.Value, filter.StartBirthday.Value, filter.EndBirthday.Value)); Assert.All(result, item => Assert.Equal(item.Country.Id, filter.Country.Id)); }