public async Task HappyPath() { GetNumberOfAddressesPerPostcodeInBoundaryRequest req = new GetNumberOfAddressesPerPostcodeInBoundaryRequest() { SwLatitude = 1, SwLongitude = 2, NeLatitude = 3, NeLongitude = 4 }; GetNumberOfAddressesPerPostcodeInBoundary GetNumberOfAddressesPerPostcodeInBoundary = new GetNumberOfAddressesPerPostcodeInBoundary(_mediator.Object, _logger.Object); IActionResult result = await GetNumberOfAddressesPerPostcodeInBoundary.Run(req, CancellationToken.None); OkObjectResult objectResult = result as OkObjectResult; Assert.IsNotNull(objectResult); Assert.AreEqual(200, objectResult.StatusCode); ResponseWrapper <GetNumberOfAddressesPerPostcodeInBoundaryResponse, AddressServiceErrorCode> deserialisedResponse = objectResult.Value as ResponseWrapper <GetNumberOfAddressesPerPostcodeInBoundaryResponse, AddressServiceErrorCode>; Assert.IsNotNull(deserialisedResponse); Assert.IsTrue(deserialisedResponse.HasContent); Assert.IsTrue(deserialisedResponse.IsSuccessful); Assert.AreEqual(0, deserialisedResponse.Errors.Count()); Assert.AreEqual("NG1 1AA", deserialisedResponse.Content.PostcodesWithNumberOfAddresses.FirstOrDefault().Postcode); _mediator.Verify(x => x.Send(It.IsAny <GetNumberOfAddressesPerPostcodeInBoundaryRequest>(), It.IsAny <CancellationToken>())); }
public async Task ErrorThrown() { _mediator.Setup(x => x.Send(It.IsAny <GetNumberOfAddressesPerPostcodeInBoundaryRequest>(), It.IsAny <CancellationToken>())).Throws <Exception>(); GetNumberOfAddressesPerPostcodeInBoundaryRequest req = new GetNumberOfAddressesPerPostcodeInBoundaryRequest() { SwLatitude = 1, SwLongitude = 2, NeLatitude = 3, NeLongitude = 4 }; GetNumberOfAddressesPerPostcodeInBoundary GetNumberOfAddressesPerPostcodeInBoundary = new GetNumberOfAddressesPerPostcodeInBoundary(_mediator.Object, _logger.Object); IActionResult result = await GetNumberOfAddressesPerPostcodeInBoundary.Run(req, CancellationToken.None); ObjectResult objectResult = result as ObjectResult; Assert.IsNotNull(objectResult); ResponseWrapper <GetNumberOfAddressesPerPostcodeInBoundaryResponse, AddressServiceErrorCode> deserialisedResponse = objectResult.Value as ResponseWrapper <GetNumberOfAddressesPerPostcodeInBoundaryResponse, AddressServiceErrorCode>; Assert.IsNotNull(deserialisedResponse); Assert.AreEqual(500, objectResult.StatusCode);; Assert.IsFalse(deserialisedResponse.HasContent); Assert.IsFalse(deserialisedResponse.IsSuccessful); Assert.AreEqual(1, deserialisedResponse.Errors.Count()); Assert.AreEqual(AddressServiceErrorCode.UnhandledError, deserialisedResponse.Errors[0].ErrorCode); _mediator.Verify(x => x.Send(It.IsAny <GetNumberOfAddressesPerPostcodeInBoundaryRequest>(), It.IsAny <CancellationToken>())); _logger.Verify(x => x.LogError(It.Is <string>(y => y.Contains("Unhandled error in GetNumberOfAddressesPerPostcodeInBoundary")), It.IsAny <Exception>())); }
public async Task ValidationFails() { _mediator.Setup(x => x.Send(It.IsAny <GetNumberOfAddressesPerPostcodeInBoundaryRequest>(), It.IsAny <CancellationToken>())).Throws <Exception>(); GetNumberOfAddressesPerPostcodeInBoundaryRequest req = new GetNumberOfAddressesPerPostcodeInBoundaryRequest() { SwLatitude = 999, // invalid SwLongitude = 2, NeLatitude = 3, NeLongitude = 4 }; GetNumberOfAddressesPerPostcodeInBoundary GetNumberOfAddressesPerPostcodeInBoundary = new GetNumberOfAddressesPerPostcodeInBoundary(_mediator.Object, _logger.Object); IActionResult result = await GetNumberOfAddressesPerPostcodeInBoundary.Run(req, CancellationToken.None); ObjectResult objectResult = result as ObjectResult; Assert.IsNotNull(objectResult); ResponseWrapper <GetNumberOfAddressesPerPostcodeInBoundaryResponse, AddressServiceErrorCode> deserialisedResponse = objectResult.Value as ResponseWrapper <GetNumberOfAddressesPerPostcodeInBoundaryResponse, AddressServiceErrorCode>; Assert.IsNotNull(deserialisedResponse); Assert.AreEqual(422, objectResult.StatusCode);; Assert.IsFalse(deserialisedResponse.HasContent); Assert.IsFalse(deserialisedResponse.IsSuccessful); Assert.AreEqual(1, deserialisedResponse.Errors.Count()); Assert.AreEqual(AddressServiceErrorCode.ValidationError, deserialisedResponse.Errors[0].ErrorCode); _mediator.Verify(x => x.Send(It.IsAny <GetNumberOfAddressesPerPostcodeInBoundaryRequest>(), It.IsAny <CancellationToken>()), Times.Never); }