public void Must_create_user_upon_register() { // Arrange var request = CreateRegistrationRequest(); Db.SaveChanges(); // Act var cmd = new FulfillRegistrationRequestCommand(Db); var result = cmd.Execute(request.Id, PASSWORD); Db.SaveChanges(); // Assert AssertSuccess(result); Assert.AreEqual(1, Db.Users.Count(u => u.Email == request.Email), "Новый пользователь не создался, либо создалось несколько пользователей"); }
public void Must_store_password_hash_with_user() { // Arrange var request = CreateRegistrationRequest(); Db.SaveChanges(); // Act var cmd = new FulfillRegistrationRequestCommand(Db); var result = cmd.Execute(request.Id, PASSWORD); Db.SaveChanges(); // Assert AssertSuccess(result); var user = Db.Users.First(u => u.Email == request.Email); Assert.IsNotNull(user.PasswordHash, "Хэш пароля не сохранился"); Assert.AreNotEqual(PASSWORD, user.PasswordHash, "Сохранился сам пароль, а не его хэш"); }
public void Must_validate_password() { // Arrange var requestId = Guid.NewGuid(); // Act var cmd = new FulfillRegistrationRequestCommand(Db); var result = cmd.Execute(requestId, "1"); // Assert AssertError(result, (FulfillRegistrationRequestCommand c)=>c.IncorrectPasswordFormat); // TODO: задачка для самостоятельного решения: проверка нужна при регистрации и смене пароля, как организовать проверку пароля и тестирование? }
public void When_registration_request_has_cart_Must_put_items_to_user_cart_upon_register() { // Arrange var cart = CreateCart(items: CreateCartItem()); var request = CreateRegistrationRequest(cart); Db.SaveChanges(); // Act var cmd = new FulfillRegistrationRequestCommand(Db); var result = cmd.Execute(request.Id, PASSWORD); Db.SaveChanges(); // Assert AssertSuccess(result); Assert.IsTrue(Db.ShoppingCarts.Any(c=>c.User.Email == request.Email && c.Items.Any()), "Покупки не перенеслись в корзину пользователя"); }
public void When_email_is_already_taken_Must_return_error() { // Arrange var request = CreateRegistrationRequest(); var user = CreateUser(); user.Email = request.Email; // занимаем email Db.SaveChanges(); // Act var cmd = new FulfillRegistrationRequestCommand(Db); var result = cmd.Execute(request.Id, PASSWORD); // Assert AssertError(result, (FulfillRegistrationRequestCommand c)=>c.EmailAlreadyRegistered); }