コード例 #1
0
        public async Task <IHttpActionResult> Patch(Guid id, ApplicationUserPatchViewModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await _membershipService.GetUser(id).ConfigureAwait(false);

            if (user == null)
            {
                return(NotFound());
            }

            var applicationUserUpdateOptions = _mapping.Map <ApplicationUserUpdateOptions>(model, options => options.Items.Add(nameof(id), id));
            var result = await _membershipService.UpdateUser(applicationUserUpdateOptions).ConfigureAwait(false);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error);
                }
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
コード例 #2
0
        public async Task Patch_ShouldReturnOk()
        {
            // Arrange
            var id    = Guid.NewGuid();
            var model = new ApplicationUserPatchViewModel();

            Mock.Mock <IMembershipService>().Setup(x => x.UpdateUser(It.IsAny <ApplicationUserUpdateOptions>()))
            .ReturnsAsync(IdentityResult.Success);
            Mock.Mock <IMembershipService>().Setup(x => x.GetUser(It.IsAny <Guid>()))
            .ReturnsAsync(new ApplicationUser());

            // Act
            var retVal = await Controller.Patch(id, model);

            // Assert
            Assert.That(retVal, Is.Not.Null);
            Assert.That(retVal, Is.TypeOf <OkResult>());
        }