public async Task PutMailingAddressAsync_UnhandledException_Returns500InternalServerError() { // Arrange var address = new UpdateMailingAddressRequest { AddressLine1 = "Bruce Wayne", AddressLine2 = "1007 Mountain Drive", City = "Gotham", Country = "USA", PostalCode = "10001" }; CustomerLogicMock.Setup(logic => logic.UpsertStandardMailingAddressAsync(It.IsAny <long>(), It.IsAny <UpdateMailingAddressModel>(), It.IsAny <string>())) .Returns(() => Task.FromResult(4131426L)); CustomerLogicMock.Setup(logic => logic.PutMailingAddressAsync(It.IsAny <AddressDefinedType>(), It.IsAny <long>())) .Throws(new ApplicationException("Batman is not available")); var controller = GetController(); ArrangeController(controller, TestHelper.PaDev1); // Act var results = await controller.PutMailingAddressAsync(address); // Assert results.ShouldBeOfType <ContentResult>(); var returnCode = (ContentResult)results; returnCode.StatusCode.ShouldBe(StatusCodes.Status500InternalServerError); }
public async Task PutMailingAddressAsync_ValidAddressAndClaim_ReturnsOk() { // Arrange var address = new UpdateMailingAddressRequest { AddressLine1 = "The White House", AddressLine2 = "1600 Pennsylvania Avenue NW", City = "Washington", Country = "USA", PostalCode = "20500", State = "WA" }; CustomerLogicMock.Setup(logic => logic.UpsertStandardMailingAddressAsync(It.IsAny <long>(), It.IsAny <UpdateMailingAddressModel>(), It.IsAny <string>())) .Returns(() => Task.FromResult(4131426L)); CustomerLogicMock.Setup(logic => logic.PutMailingAddressAsync(It.IsAny <AddressDefinedType>(), It.IsAny <long>())) .Returns(() => Task.FromResult(HttpStatusCode.OK)); var controller = GetController(); ArrangeController(controller, TestHelper.PaDev1); // Act var results = await controller.PutMailingAddressAsync(address); // Assert results.ShouldBeOfType <OkObjectResult>(); }
public async Task PutMailingAddressAsync_InvalidAddress_Returns400BadRequest() { // Arrange var address = new UpdateMailingAddressRequest(); var controller = GetController(); controller.ViewData.Model = address; controller.ViewData.ModelState.AddModelError("AddressLine1", "AddressLine1 is required"); // Act var results = await controller.PutMailingAddressAsync(address); // Assert results.ShouldBeOfType <BadRequestObjectResult>(); var badRequest = (BadRequestObjectResult)results; badRequest.StatusCode.ShouldNotBeNull(); badRequest.StatusCode.Value.ShouldBe(StatusCodes.Status400BadRequest); }
/// <summary> /// To the base. /// </summary> /// <param name="source">The source.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">source</exception> public static AddressDefinedType ToBase(this UpdateMailingAddressRequest source) { if (source == null) { throw new ArgumentNullException(nameof(source)); } var model = new AddressDefinedType { AddressLine1 = source.AddressLine1, AddressLine2 = source.AddressLine2, CareOf = source.CareOf, City = source.City, Country = source.Country, PostalCode = source.PostalCode, State = source.State }; return(model); }
public async Task <IActionResult> PutMailingAddressAsync([FromBody] UpdateMailingAddressRequest request) { _logger.LogInformation($"PutMailingAddressAsync({nameof(request)}: {request.ToJson()})"); IActionResult result = BadRequest(ModelState); if (ModelState.IsValid) { try { if (HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues jwt)) { var bpId = GetBpIdFromClaims(); var model = Mapper.Map <UpdateMailingAddressModel>(request); //MCF Call var addressId = await _customerLogic.UpsertStandardMailingAddressAsync(bpId, model, jwt); //Cassandra Update var address = request.ToBase(); await _customerLogic.PutMailingAddressAsync(address, bpId); result = Ok(addressId); } else { result = Unauthorized(); } } catch (Exception e) { _logger.LogError(e.Message); result = e.ToActionResult(); } } return(result); }