Пример #1
0
        public void TestAddingCommentToThread()
        {
            var role = new Role(new[]
            {
                Permission.CreateChat,
                Permission.DeleteThread,
                Permission.AddMessage
            });

            var user = new User("TestUser", role);

            user.Login();

            var chatDao     = new ChatDao();
            var httpContext = new HttpContext();
            var chatService = new ChatService(httpContext, chatDao, new UserDao());
            var chatId      = chatService.NewChat(user);

            const string title   = "A new thread";
            const string message = "Let's discuss things...";

            chatService.AddThread(chatId, user, user.Username, title, message);

            var chat   = chatDao.GetChatById(chatId);
            var thread = chat.Threads.First();

            var dev1 = new User("JaneDoe", role);
            var dev2 = new User("JohnDoe", role);

            dev1.Login();
            dev2.Login();

            var userDao = new UserDao();

            userDao.SaveUser(dev1);
            userDao.SaveUser(dev2);

            chatService.AddCommentToThread(thread.ThreadId, chatId, "Hello, world!", dev1.Username);
            chatService.AddCommentToThread(thread.ThreadId, chatId, "Foo, bar, baz.", dev2.Username);

            chat = chatDao.GetChatById(chatId);

            var comments = chat.Threads.First().Comments;

            Assert.That(comments[0].Username, Is.EqualTo("JaneDoe"));
            Assert.That(comments[0].Message, Is.EqualTo("Hello, world!"));
            Assert.That(comments[1].Username, Is.EqualTo("JohnDoe"));
            Assert.That(comments[1].Message, Is.EqualTo("Foo, bar, baz."));
        }