public void UpdateUserInfo_ShouldReturnOkResult_WhenUpdateContactInfoSucceded() { mapper.Execute(); string deliveryCountry = "BG"; string testId = "testId"; var usersMock = new Mock <IUsersService>(); usersMock.Setup(x => x.UpdateContactInfo(It.IsAny <User>())).Returns(() => new User() { DeliveryCountry = deliveryCountry }); // moq the user var claim = new Claim("test", testId); var mockIdentity = Mock.Of <ClaimsIdentity>(ci => ci.FindFirst(It.IsAny <string>()) == claim); AccountInfoUpdateModel request = new AccountInfoUpdateModel() { DeliveryCountry = deliveryCountry }; var controller = new AccountController(usersMock.Object, null, null, null) { User = Mock.Of <IPrincipal>(ip => ip.Identity == mockIdentity) }; var result = controller.UpdateUserInfo(request); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <AccountInfoResponseModel>)); var responseContent = ((OkNegotiatedContentResult <AccountInfoResponseModel>)result).Content; Assert.AreEqual(responseContent.DeliveryCountry, deliveryCountry); usersMock.VerifyAll(); usersMock.Verify(m => m.UpdateContactInfo(It.Is <User>(x => x.DeliveryCountry == deliveryCountry))); usersMock.Verify(m => m.UpdateContactInfo(It.Is <User>(x => x.Id == testId))); }
public IHttpActionResult UpdateUserInfo(AccountInfoUpdateModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var userId = User.Identity.GetUserId(); var user = this.Mapper.Map <User>(model); user.Id = userId; var updatedUser = this.users.UpdateContactInfo(user); var resultUpdatedUser = this.Mapper.Map <AccountInfoResponseModel>(updatedUser); return(this.Ok(resultUpdatedUser)); } catch (Exception e) { HandlExceptionLogging(e, "", controllerName); return(InternalServerError()); } }