public AllowUser ( JabbR.Models.ChatUser user, JabbR.Models.ChatUser targetUser, JabbR.Models.ChatRoom targetRoom ) : void | ||
user | JabbR.Models.ChatUser | |
targetUser | JabbR.Models.ChatUser | |
targetRoom | JabbR.Models.ChatRoom | |
return | void |
public void ThrowsIfUserIsNotOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); 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.AllowUser(user, user, room)); }
public void AllowsUserIntoRoom() { 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.Owners.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); room.Users.Add(user); var service = new ChatService(repository, new Mock<ICryptoService>().Object); service.AllowUser(user, user2, room); Assert.True(room.AllowedUsers.Contains(user2)); Assert.True(user2.AllowedRooms.Contains(room)); }
public void ThrowsIfUserIsAlreadyAllowed() { 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.AllowedUsers.Add(user2); room.Owners.Add(user); user.OwnedRooms.Add(room); user.Rooms.Add(room); user2.AllowedRooms.Add(room); var service = new ChatService(new Mock<ICache>().Object, repository); Assert.Throws<HubException>(() => service.AllowUser(user, user2, room)); }
public void AdminCanAllowUserIntoRoom() { var repository = new InMemoryRepository(); var admin = 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); var service = new ChatService(new Mock<ICache>().Object, repository); service.AllowUser(admin, admin, room); Assert.True(room.AllowedUsers.Contains(admin)); Assert.True(admin.AllowedRooms.Contains(room)); }
public void ThrowsIfRoomNotPrivate() { 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", }; room.Users.Add(user); user.Rooms.Add(room); room.Owners.Add(user); user.OwnedRooms.Add(room); var service = new ChatService(new Mock<ICache>().Object, repository, new Mock<ICryptoService>().Object); Assert.Throws<InvalidOperationException>(() => service.AllowUser(user, user2, room)); }
public void ThrowsIfUserIsNotOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); var room = new ChatRoom { Name = "Room", Private = true }; room.Users.Add(user); user.Rooms.Add(room); var service = new ChatService(new Mock<ICache>().Object, new Mock<IRecentMessageCache>().Object, repository); Assert.Throws<HubException>(() => service.AllowUser(user, user, room)); }