Пример #1
0
            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));
            }
Пример #2
0
            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(repository, new Mock <ICryptoService>().Object);

                Assert.Throws <InvalidOperationException>(() => service.AllowUser(user, user2, room));
            }