public void ListResidents() { var residentInfo = new List <ResidentResponse>() { new ResidentResponse { FirstName = _faker.Name.FirstName(), LastName = _faker.Name.LastName(), DateOfBirth = _faker.Date.Past().ToString(), Uprn = 1234, Email = _faker.Person.Email } }; var residentInformationList = new ResidentInformationList { Residents = residentInfo }; var request = new ListResidentsRequest() { FirstName = residentInfo[0].FirstName, LastName = residentInfo[0].LastName }; _mockGetAllResidentsUseCase.Setup(x => x.Execute(request)).Returns(residentInformationList); var response = _classUnderTest.ListResidents(request) as OkObjectResult; response.Should().NotBeNull(); response.StatusCode.Should().Be(200); response.Value.Should().BeEquivalentTo(residentInformationList); }
public List <Resident> GetAllResidents(ListResidentsRequest request) { return(_electoralRegisterContext.Electors .Where(e => string.IsNullOrEmpty(request.FirstName) || e.FirstName.Trim().ToLower().Contains(request.FirstName.ToLower())) .Where(e => string.IsNullOrEmpty(request.LastName) || e.LastName.Trim().ToLower().Contains(request.LastName.ToLower())) .Where(e => e.Id > request.Cursor) .Include(e => e.ElectorExtension) .Include(e => e.ElectorsProperty) .OrderBy(e => e.Id) .Take(request.Limit) .ToList().ToDomain()); }
public ResidentInformationList Execute(ListResidentsRequest request) { var limit = request.Limit < 10 ? 10 : request.Limit; limit = request.Limit > 100 ? 100 : limit; var residents = _electoralRegisterGateway.GetAllResidents(request).ToResponse(); return(new ResidentInformationList { Residents = residents, NextCursor = GetNextCursor(residents, limit) }); }
public void GetAllResidentsWillRetrieveElectorRecordsAndRelatedData() { var dateOfBirthForOne = _faker.Date.Past(); var dateOfBirthForTwo = _faker.Date.Past(); var firstName = _faker.Person.FirstName; var(electorOne, electorExtensionOne, propertyOne) = SaveElectorAndAssociatedEntitiesToDatabase(dateOfBirthForOne, firstName, 1); var(electorTwo, electorExtensionTwo, propertyTwo) = SaveElectorAndAssociatedEntitiesToDatabase(dateOfBirthForTwo, firstName, 2); SaveElectorAndAssociatedEntitiesToDatabase(dateOfBirthForTwo); //add a resident to db that should not be returned var request = new ListResidentsRequest() { FirstName = electorOne.FirstName }; //---- Call gateway method var listOfRecords = _classUnderTest.GetAllResidents(request); var residentOne = listOfRecords.First(); var residentTwo = listOfRecords.Last(); listOfRecords.Count.Should().Be(2); residentOne.Id.Should().Be(electorOne.Id); residentOne.Should().BeEquivalentTo(new Resident { Id = electorOne.Id, Email = electorOne.Email, Nationality = electorOne.Nationality, Title = electorOne.Title, Uprn = Convert.ToInt32(propertyOne.Uprn), FirstName = electorOne.FirstName, MiddleName = electorExtensionOne.MiddleName, LastName = electorOne.LastName, DateOfBirth = electorExtensionOne.DateOfBirth }); residentTwo.Id.Should().Be(electorTwo.Id); residentTwo.Should().BeEquivalentTo(new Resident { Id = electorTwo.Id, Email = electorTwo.Email, Nationality = electorTwo.Nationality, Title = electorTwo.Title, Uprn = Convert.ToInt32(propertyTwo.Uprn), FirstName = electorTwo.FirstName, MiddleName = electorExtensionTwo.MiddleName, LastName = electorTwo.LastName, DateOfBirth = electorExtensionTwo.DateOfBirth }); }
public IActionResult ListResidents([FromQuery] ListResidentsRequest request) { return(Ok(_getAllResidentsUseCase.Execute(request))); }