public void GivenUPRN_WhenExecuteAsync_ThenMatchingCrossReferencesShouldBeReturned() { SetupValidatorToReturnValid(); var crossReferences = new List <AddressCrossReference> { new AddressCrossReference { UPRN = 10024389298, Code = "", CrossRefKey = "", Name = "", Value = "", EndDate = DateTime.Today } }; var uprn = 10024389298; var request = new GetPropertiesCrossReferenceRequest { uprn = uprn }; _fakeGateway.Setup(s => s.GetAddressCrossReference(10024389298)) .Returns(crossReferences); var response = _classUnderTest.ExecuteAsync(request); response.Should().NotBeNull(); response.AddressCrossReferences.Count.Should().Be(1); response.AddressCrossReferences.First().UPRN.Should().Be(uprn); }
public void GivenNullUprn_ShouldThrowValidationError() { //arrange var request = new GetPropertiesCrossReferenceRequest(); //act & assert _classUnderTest.ShouldHaveValidationErrorFor(x => x.uprn, request) .WithErrorMessage("UPRN must be provided and must be numeric"); }
public void GivenValidInput_WhenExecuteAsync_GatewayReceivesCorrectInputLength() { SetupValidatorToReturnValid(); var uprn = 1234578912; _fakeGateway.Setup(s => s.GetAddressCrossReference(1234578912)).Returns(new List <AddressCrossReference>()).Verifiable(); var request = new GetPropertiesCrossReferenceRequest { uprn = uprn }; _classUnderTest.ExecuteAsync(request); _fakeGateway.Verify(); }
public IActionResult GetPropertiesCrossReference(long uprn) { var request = new GetPropertiesCrossReferenceRequest { uprn = uprn }; try { var response = _getPropertiesCrossReferenceUseCase.ExecuteAsync(request); return(new OkObjectResult(new APIResponse <GetPropertiesCrossReferenceResponse>(response))); } catch (BadRequestException e) { return(new BadRequestObjectResult(new ErrorResponse(e.ValidationResponse))); } }
public GetPropertiesCrossReferenceResponse ExecuteAsync(GetPropertiesCrossReferenceRequest request) { var validationResponse = _getAddressCrossReferenceValidator.Validate(request); if (!validationResponse.IsValid) { throw new BadRequestException(validationResponse); } var response = _crossReferenceGateway.GetAddressCrossReference(request.uprn); var useCaseResponse = new GetPropertiesCrossReferenceResponse { AddressCrossReferences = response.ToResponse() }; return(useCaseResponse); }
public void GivenValidInput_WhenGatewayRespondsWithEmptyList_ThenResponseShouldBeEmptyList() { SetupValidatorToReturnValid(); //arrange var uprn = 1234578912; _fakeGateway.Setup(s => s.GetAddressCrossReference(1234578912)) .Returns(new List <AddressCrossReference>()); var request = new GetPropertiesCrossReferenceRequest { uprn = uprn }; //act var response = _classUnderTest.ExecuteAsync(request); //assert response.AddressCrossReferences.Count.Should().Be(0); }