public async Task<IHttpActionResult> ChangePassword(ChangePasswordBindingModel model) { if (!ModelState.IsValid) return BadRequest(ModelState); if (model == null || model.NewPassword == null || model.OldPassword == null) return BadRequest("Parameters cannot be null"); if (User.Identity.GetUserId() == null) return BadRequest("Unknown User"); IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); if (!result.Succeeded) return BadRequest(result.Errors.Aggregate("", (current, error) => current + (error + ", "))); return Ok("ok"); }
public void ChangePassword() { var controller = InitController(); CancellationTokenSource cs = new CancellationTokenSource(); CancellationToken t = cs.Token; // Test 1 var result = controller.ChangePassword(null); var response = result.Result.ExecuteAsync(t).Result; var code = response.StatusCode; Assert.AreEqual(HttpStatusCode.BadRequest, code); var value = response.Content.ReadAsStringAsync().Result; Assert.IsTrue(value.Contains("Parameters cannot be null")); // Test 2 var model = new ChangePasswordBindingModel { NewPassword = "******" }; result = controller.ChangePassword(model); response = result.Result.ExecuteAsync(t).Result; code = response.StatusCode; Assert.AreEqual(HttpStatusCode.BadRequest, code); value = response.Content.ReadAsStringAsync().Result; Assert.IsTrue(value.Contains("Parameters cannot be null")); //Test 3 model = new ChangePasswordBindingModel { OldPassword = "******" }; result = controller.ChangePassword(model); response = result.Result.ExecuteAsync(t).Result; code = response.StatusCode; Assert.AreEqual(HttpStatusCode.BadRequest, code); value = response.Content.ReadAsStringAsync().Result; Assert.IsTrue(value.Contains("Parameters cannot be null")); // Test 4 model = new ChangePasswordBindingModel { NewPassword = "******", OldPassword = ""}; result = controller.ChangePassword(model); response = result.Result.ExecuteAsync(t).Result; code = response.StatusCode; Assert.AreEqual(HttpStatusCode.BadRequest, code); // Test 5 model = new ChangePasswordBindingModel { NewPassword = "", OldPassword = "******" }; result = controller.ChangePassword(model); response = result.Result.ExecuteAsync(t).Result; code = response.StatusCode; Assert.AreEqual(HttpStatusCode.BadRequest, code); // Test 6 model = new ChangePasswordBindingModel { NewPassword = "", OldPassword = "" }; result = controller.ChangePassword(model); response = result.Result.ExecuteAsync(t).Result; code = response.StatusCode; Assert.AreEqual(HttpStatusCode.BadRequest, code); //test 7 model = new ChangePasswordBindingModel { NewPassword = "******", OldPassword = "******" }; result = controller.ChangePassword(model); response = result.Result.ExecuteAsync(t).Result; code = response.StatusCode; // if unknown user BadRequest else OK Assert.IsTrue(HttpStatusCode.OK == code || HttpStatusCode.BadRequest == code); }