public void MakesOwnerAllowedIfRoomLocked() { 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, 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.AddOwner(user, user2, room); Assert.True(user2.AllowedRooms.Contains(room)); Assert.True(room.AllowedUsers.Contains(user2)); Assert.True(room.Owners.Contains(user2)); Assert.True(user2.OwnedRooms.Contains(room)); }
public void ThrowsIfUserIsNotOwner() { var repository = new InMemoryRepository(); var user = new ChatUser { Name = "foo" }; repository.Add(user); var room = new ChatRoom { Name = "Room" }; room.Users.Add(user); user.Rooms.Add(room); var service = new ChatService(repository, new Mock <ICryptoService>().Object); Assert.Throws <InvalidOperationException>(() => service.AddOwner(user, user, room)); }