public UnallowUser ( ChatUser user, ChatUser targetUser, ChatRoom targetRoom ) : void | ||
user | ChatUser | |
targetUser | ChatUser | |
targetRoom | ChatRoom | |
return | void |
public void UnallowsAndRemovesUserFromRoom() { 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", Private = true }; room.AllowedUsers.Add(user2); room.Owners.Add(user); room.Users.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); user2.AllowedRooms.Add(room); var service = new ChatService(repository, new Mock<ICryptoService>().Object); service.UnallowUser(user, user2, room); Assert.False(room.Users.Contains(user2)); Assert.False(user2.Rooms.Contains(room)); Assert.False(room.AllowedUsers.Contains(user2)); Assert.False(user2.AllowedRooms.Contains(room)); }
public void ThrowsIfUserIsNotAllowed() { 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", Private = true }; room.Users.Add(user); room.Owners.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); var service = new ChatService(new Mock<ICache>().Object, repository); Assert.Throws<HubException>(() => service.UnallowUser(user, user2, room)); }
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", Private = true }; room.Users.Add(user); user.Rooms.Add(room); var service = new ChatService(repository, new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.UnallowUser(user, user2, room)); }
public void DoesNotThrowIfUserIsAdminButIsNotOwner() { 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", Private = true }; room.AllowedUsers.Add(user2); room.Users.Add(admin); admin.Rooms.Add(room); user2.AllowedRooms.Add(room); var service = new ChatService(new Mock<ICache>().Object, repository); service.UnallowUser(admin, user2, room); Assert.False(room.Users.Contains(user2)); Assert.False(user2.Rooms.Contains(room)); Assert.False(room.AllowedUsers.Contains(user2)); Assert.False(user2.AllowedRooms.Contains(room)); }
public void ThrowIfOwnerTriesToUnallowAdmin() { var repository = new InMemoryRepository(); var owner = new ChatUser { Name = "foo" }; var admin = new ChatUser { Name = "foo2", IsAdmin = true }; repository.Add(owner); repository.Add(admin); var room = new ChatRoom { Name = "Room", Private = true }; owner.OwnedRooms.Add(room); room.Owners.Add(owner); owner.AllowedRooms.Add(room); room.AllowedUsers.Add(owner); admin.AllowedRooms.Add(room); room.AllowedUsers.Add(admin); owner.Rooms.Add(room); admin.Rooms.Add(room); room.Users.Add(owner); room.Users.Add(admin); var service = new ChatService(new Mock<ICache>().Object, repository); Assert.Throws<HubException>(() => service.UnallowUser(owner, admin, room)); }
public void AdminCanUnallowUser() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var user = new ChatUser { Name = "foo" }; repository.Add(admin); var room = new ChatRoom { Name = "Room", Private = true }; room.Users.Add(admin); admin.Rooms.Add(room); room.AllowedUsers.Add(admin); admin.AllowedRooms.Add(room); room.AllowedUsers.Add(user); user.AllowedRooms.Add(room); var service = new ChatService(new Mock<ICache>().Object, repository); service.UnallowUser(admin, user, room); Assert.False(room.Users.Contains(user)); Assert.False(user.Rooms.Contains(room)); Assert.False(room.AllowedUsers.Contains(user)); Assert.False(user.AllowedRooms.Contains(room)); }
public void AdminCanUnallowCreator() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var creator = new ChatUser { Name = "foo" }; repository.Add(admin); var room = new ChatRoom { Name = "Room", Private = true, Creator = creator }; room.Users.Add(admin); admin.Rooms.Add(room); room.Owners.Add(admin); admin.OwnedRooms.Add(room); room.Owners.Add(creator); creator.OwnedRooms.Add(room); room.AllowedUsers.Add(admin); admin.AllowedRooms.Add(room); room.AllowedUsers.Add(creator); creator.AllowedRooms.Add(room); var service = new ChatService(repository, new Mock<ICryptoService>().Object); service.UnallowUser(admin, creator, room); Assert.False(room.Users.Contains(creator)); Assert.False(creator.Rooms.Contains(room)); Assert.False(room.AllowedUsers.Contains(creator)); Assert.False(creator.AllowedRooms.Contains(room)); }
public void AdminCanUnallowAdmin() { var repository = new InMemoryRepository(); var admin = new ChatUser { Name = "foo", IsAdmin = true }; var otherAdmin = new ChatUser { Name = "foo", IsAdmin = true }; repository.Add(admin); var room = new ChatRoom { Name = "Room", Private = true }; room.Users.Add(admin); admin.Rooms.Add(room); room.Users.Add(otherAdmin); otherAdmin.Rooms.Add(room); room.AllowedUsers.Add(admin); admin.AllowedRooms.Add(room); room.AllowedUsers.Add(otherAdmin); otherAdmin.AllowedRooms.Add(room); var service = new ChatService(repository, new Mock<ICryptoService>().Object); service.UnallowUser(admin, otherAdmin, room); Assert.False(room.Users.Contains(otherAdmin)); Assert.False(otherAdmin.Rooms.Contains(room)); Assert.False(room.AllowedUsers.Contains(otherAdmin)); Assert.False(otherAdmin.AllowedRooms.Contains(room)); }
public void ThrowsIfTargetUserIsCreator() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); var room = new ChatRoom { Name = "Room", Private = true, Creator = user }; room.Users.Add(user); user.Rooms.Add(room); room.Owners.Add(user); user.OwnedRooms.Add(room); room.AllowedUsers.Add(user); user.AllowedRooms.Add(room); var service = new ChatService(new Mock<ICache>().Object, repository, new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.UnallowUser(user, user, room)); }
public void ThrowIfOwnerTriesToUnallowOwner() { 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", Private = true }; user.OwnedRooms.Add(room); room.Owners.Add(user); user.AllowedRooms.Add(room); room.AllowedUsers.Add(user); user2.OwnedRooms.Add(room); room.Owners.Add(user2); user2.AllowedRooms.Add(room); room.AllowedUsers.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, repository); Assert.Throws<InvalidOperationException>(() => service.UnallowUser(user, user2, room)); }