コード例 #1
0
        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)));
        }
コード例 #2
0
        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());
            }
        }