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);
        }
コード例 #2
0
 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());
 }
コード例 #3
0
        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
            });
        }
コード例 #5
0
 public IActionResult ListResidents([FromQuery] ListResidentsRequest request)
 {
     return(Ok(_getAllResidentsUseCase.Execute(request)));
 }