public async Task Update_passwordOnly_shouldInvokeUpdate() { var mockUserStore = Mock.Of<IDragonUserStore<AppMember>>(x => x.FindByIdAsync(It.IsAny<string>()) == Task.FromResult(new AppMember()) && x.UpdateAsync(It.IsAny<AppMember>()) == Task.FromResult<object>(null) ); var controller = new AccountApiController(mockUserStore, new ApplicationUserManager(mockUserStore)); var password = Guid.NewGuid().ToString(); var result = await controller.Update(new UpdateViewModel {Password = password}); Assert.IsInstanceOfType(result, typeof(OkResult)); Mock.Get(mockUserStore).Verify(x => x.UpdateAsync(It.Is<AppMember>(y => !string.IsNullOrEmpty(y.PasswordHash))), Times.Once); Mock.Get(mockUserStore).Verify(x => x.UpdateAsync(It.Is<AppMember>(y => !string.IsNullOrEmpty(y.PasswordHash))), Times.Once); }
public async Task Update_emailOnly_shouldInvokeUpdate() { var mockUserStore = Mock.Of<IDragonUserStore<AppMember>>(x => x.FindByIdAsync(It.IsAny<string>()) == Task.FromResult(new AppMember()) && x.UpdateAsync(It.IsAny<AppMember>()) == Task.FromResult<object>(null) ); var controller = new AccountApiController(mockUserStore, null); const string email = "*****@*****.**"; var result = await controller.Update(new UpdateViewModel { Email = email }); Assert.IsInstanceOfType(result, typeof(OkResult)); Mock.Get(mockUserStore).Verify(x => x.UpdateAsync(It.Is<AppMember>(y => y.Email == email)), Times.Once); Mock.Get(mockUserStore).Verify(x => x.UpdateAsync(It.Is<AppMember>(y => y.Email == email)), Times.Once); }