public KickUser ( ChatUser user, ChatUser targetUser, ChatRoom targetRoom ) : void | ||
user | ChatUser | |
targetUser | ChatUser | |
targetRoom | ChatRoom | |
Résultat | void |
public void ThrowsIfUserIsNotOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", }; user.Rooms.Add(room); user2.Rooms.Add(room); room.Users.Add(user); room.Users.Add(user2); var service = new ChatService(repository); Assert.Throws<InvalidOperationException>(() => service.KickUser(user, user2, room)); }
public void DoesNotThrowIfCreatorKicksOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", Creator = user }; user.OwnedRooms.Add(room); room.Owners.Add(user); user2.OwnedRooms.Add(room); room.Owners.Add(user2); user.Rooms.Add(room); user2.Rooms.Add(room); room.Users.Add(user); room.Users.Add(user2); var service = new ChatService(repository); service.KickUser(user, user2, room); Assert.False(user2.Rooms.Contains(room)); Assert.False(room.Users.Contains(user2)); }
public void ThrowsIfKickSelf() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); var room = new ChatRoom { Name = "Room", Creator = user }; room.Owners.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); room.Users.Add(user); var service = new ChatService(repository); Assert.Throws<InvalidOperationException>(() => service.KickUser(user, user, room)); }
public void ThrowsIfUserIsNotOwnerAndNotAdmin() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", }; user.Rooms.Add(room); user2.Rooms.Add(room); room.Users.Add(user); room.Users.Add(user2); var service = new ChatService(new Mock<ICache>().Object, repository); Assert.Throws<HubException>(() => service.KickUser(user, user2, room)); }
public void ThrowsIfOwnerTriesToRemoveOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", }; user.OwnedRooms.Add(room); room.Owners.Add(user); user2.OwnedRooms.Add(room); room.Owners.Add(user2); user.Rooms.Add(room); user2.Rooms.Add(room); room.Users.Add(user); room.Users.Add(user2); var service = new ChatService(repository, new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.KickUser(user, user2, room)); }
public void ThrowsIfOwnerTriesToRemoveAdmin() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var owner = new ChatUser { Name = "foo2" }; repository.Add(admin); repository.Add(owner); var room = new ChatRoom { Name = "Room", }; owner.OwnedRooms.Add(room); room.Owners.Add(owner); admin.Rooms.Add(room); owner.Rooms.Add(room); room.Users.Add(admin); room.Users.Add(owner); var service = new ChatService(new Mock<ICache>().Object, repository); Assert.Throws<HubException>(() => service.KickUser(owner, admin, room)); }
public void ThrowsIfTargetUserNotInRoom() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", Creator = user }; user.OwnedRooms.Add(room); room.Owners.Add(user); user.Rooms.Add(room); room.Users.Add(user); var service = new ChatService(new Mock<ICache>().Object, repository); Assert.Throws<HubException>(() => service.KickUser(user, user2, room)); }
public void DoesNotThrowIfAdminKicksOwner() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(admin); repository.Add(user2); var room = new ChatRoom { Name = "Room" }; user2.OwnedRooms.Add(room); room.Owners.Add(user2); admin.Rooms.Add(room); user2.Rooms.Add(room); room.Users.Add(admin); room.Users.Add(user2); var service = new ChatService(new Mock<ICache>().Object, repository); service.KickUser(admin, user2, room); Assert.False(user2.Rooms.Contains(room)); Assert.False(room.Users.Contains(user2)); }
public void AdminCanKickCreator() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var creator = new ChatUser { Name = "foo2" }; repository.Add(admin); repository.Add(creator); var room = new ChatRoom { Name = "Room", Creator = creator }; creator.OwnedRooms.Add(room); room.Owners.Add(creator); admin.Rooms.Add(room); creator.Rooms.Add(room); room.Users.Add(admin); room.Users.Add(creator); var service = new ChatService(new Mock<ICache>().Object, repository); service.KickUser(admin, creator, room); Assert.False(creator.Rooms.Contains(room)); Assert.False(room.Users.Contains(creator)); }
public void AdminCanKickAdmin() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var otherAdmin = new ChatUser { Name = "foo2", IsAdmin = true }; repository.Add(admin); repository.Add(otherAdmin); var room = new ChatRoom { Name = "Room" }; admin.Rooms.Add(room); otherAdmin.Rooms.Add(room); room.Users.Add(admin); room.Users.Add(otherAdmin); var service = new ChatService(new Mock<ICache>().Object, repository); service.KickUser(admin, otherAdmin, room); Assert.False(otherAdmin.Rooms.Contains(room)); Assert.False(room.Users.Contains(otherAdmin)); }
public void AdminCanKickUser() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(admin); repository.Add(user2); var room = new ChatRoom { Name = "Room", }; admin.Rooms.Add(room); user2.Rooms.Add(room); room.Users.Add(admin); room.Users.Add(user2); var service = new ChatService(repository, new Mock<ICryptoService>().Object); service.KickUser(admin, user2, room); Assert.False(user2.Rooms.Contains(room)); Assert.False(room.Users.Contains(user2)); }
public void ThrowsIfOwnerTriesToRemoveOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; var user2 = new ChatUser { Name = "foo2" }; repository.Add(user); repository.Add(user2); var room = new ChatRoom { Name = "Room", }; user.OwnedRooms.Add(room); room.Owners.Add(user); user2.OwnedRooms.Add(room); room.Owners.Add(user2); user.Rooms.Add(room); user2.Rooms.Add(room); room.Users.Add(user); room.Users.Add(user2); var service = new ChatService(new Mock<ICache>().Object, new Mock<IRecentMessageCache>().Object, repository); Assert.Throws<HubException>(() => service.KickUser(user, user2, room)); }