Example #1
0
        public void AcceptFriendship_WhenException_ShouldRollback()
        {
            var firstUser  = ModelTestHelper.CreateUser(-1, "aUser");
            var secondUser = ModelTestHelper.CreateUser(-1, "aFriend", "secondEmail");
            var userRepo   = new UserRepository();

            userRepo.SaveUser(firstUser);
            Assert.IsFalse(userRepo.HasErrors);
            userRepo.SaveUser(secondUser);
            Assert.IsFalse(userRepo.HasErrors);
            var friendship = ModelTestHelper.CreateFriendship(firstUser.Id, secondUser.Pseudo, DateTime.Now, true, true);
            var service    = new FriendshipServices();

            service.RequestFriendship(friendship, firstUser.Pseudo);
            Assert.IsFalse(service.HasErrors);
            var mock = new Mock <IUserRepository>();

            mock.SetupGet(u => u.HasErrors).Throws(new Exception("Rollback"));
            var mockService = new FriendshipServices(mock.Object, new FriendshipRepository());

            mockService.AcceptFriendship(friendship, firstUser.Pseudo);
            Assert.IsTrue(mockService.HasErrors);
            var dbFriendship = service.GetFriendship(friendship.UserId, friendship.FriendName);

            Assert.IsTrue(dbFriendship.IsWaiting);
        }
Example #2
0
        public void AcceptFriendship_WhenValid_ShouldCommit()
        {
            var firstUser  = ModelTestHelper.CreateUser(-1, "aUser");
            var secondUser = ModelTestHelper.CreateUser(-1, "aFriend", "secondEmail");
            var userRepo   = new UserRepository();

            userRepo.SaveUser(firstUser);
            Assert.IsFalse(userRepo.HasErrors);
            userRepo.SaveUser(secondUser);
            Assert.IsFalse(userRepo.HasErrors);
            var friendship = ModelTestHelper.CreateFriendship(firstUser.Id, secondUser.Pseudo, DateTime.Now, true, true);
            var service    = new FriendshipServices();

            service.RequestFriendship(friendship, firstUser.Pseudo);
            Assert.IsFalse(service.HasErrors);
            service.AcceptFriendship(friendship, firstUser.Pseudo);
            Assert.IsFalse(service.HasErrors);
            var dbFriendship = service.GetFriendship(friendship.UserId, friendship.FriendName);

            Assert.IsNotNull(dbFriendship);
            Assert.IsFalse(dbFriendship.IsWaiting);
            var otherFriendship = service.GetFriendship(secondUser.Id, firstUser.Pseudo);

            Assert.IsNotNull(otherFriendship);
            Assert.IsFalse(dbFriendship.IsWaiting);
        }