public void Delete_WhenErrorDuringDelete_ShouldRollBack() { var userRepo = new UserRepository(); var friendshipRepo = new FriendshipRepository(); var tripRepo = new UserTripRepository(); var user = ModelTestHelper.CreateUser(1, "DeleteUser"); var pwd = user.Password; userRepo.SaveUser(user); Assert.IsFalse(userRepo.HasErrors); var secondUser = ModelTestHelper.CreateUser(2, "AFriend", "AFriendMail"); userRepo.SaveUser(secondUser); Assert.IsFalse(userRepo.HasErrors); var friendship = ModelTestHelper.CreateFriendship(user.Id, secondUser.Pseudo); var otherFriendship = ModelTestHelper.CreateFriendship(secondUser.Id, user.Pseudo); friendshipRepo.SaveFriendship(friendship); friendshipRepo.SaveFriendship(otherFriendship); Assert.IsFalse(friendshipRepo.HasErrors); user.AddFriend(friendship); secondUser.AddFriend(otherFriendship); var trip = ModelTestHelper.CreateUserTrip(user.Id, "ATrip"); tripRepo.SaveUserTrip(trip); Assert.IsFalse(tripRepo.HasErrors); user.AddTrip(trip); var mock = new Mock <IUserTripRepository>(); mock.Setup(s => s.DeleteUserTrip(trip)).Callback(() => tripRepo.DeleteUserTrip(trip)); mock.SetupGet(s => s.HasErrors).Returns(true); var service = new UserServices(new UserRepository(), mock.Object, new FriendshipRepository()); service.DeleteUser(user); service = new UserServices(); var dbUser = service.LoginByPseudo(user.Pseudo, pwd); Assert.IsNotNull(dbUser); Assert.AreEqual(1, dbUser.Friends.Count()); Assert.AreEqual(1, dbUser.Trips.Count()); Assert.AreEqual(1, service.GetUserTrips(user.Id).Count()); Assert.AreEqual(1, service.GetUserFriendships(user.Id).Count()); Assert.AreEqual(1, service.GetUserFriendships(secondUser.Id).Count(f => f.FriendName == user.Pseudo)); }
public void Delete_WhenValid_ShouldCommit() { var userRepo = new UserRepository(); var friendshipRepo = new FriendshipRepository(); var tripRepo = new UserTripRepository(); var user = ModelTestHelper.CreateUser(1, "DeleteUser"); userRepo.SaveUser(user); Assert.IsFalse(userRepo.HasErrors); var secondUser = ModelTestHelper.CreateUser(2, "AFriend", "AFriendMail"); userRepo.SaveUser(secondUser); Assert.IsFalse(userRepo.HasErrors); var friendship = ModelTestHelper.CreateFriendship(user.Id, secondUser.Pseudo); var otherFriendship = ModelTestHelper.CreateFriendship(secondUser.Id, user.Pseudo); friendshipRepo.SaveFriendship(friendship); friendshipRepo.SaveFriendship(otherFriendship); Assert.IsFalse(friendshipRepo.HasErrors); user.AddFriend(friendship); secondUser.AddFriend(otherFriendship); var trip = ModelTestHelper.CreateUserTrip(user.Id, "ATrip"); tripRepo.SaveUserTrip(trip); Assert.IsFalse(tripRepo.HasErrors); user.AddTrip(trip); var service = new UserServices(); service.DeleteUser(user); Assert.IsNull(service.GetUserInfo(user.Pseudo)); Assert.AreEqual(0, service.GetUserTrips(user.Id).Count()); Assert.AreEqual(0, service.GetUserFriendships(user.Id).Count()); Assert.AreEqual(0, service.GetUserFriendships(secondUser.Id).Count(f => f.FriendName == user.Pseudo)); }