public void ShouldThrowExceptionWhenGettingUserOnGetMoreChatMessagesByNameFails()
        {
            _chatMessageRepository = new Mock<IChatMessageRepository>();
            _chatMessageRepository.Setup(a => a.GetMoreChatMessages(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Throws(new Exception());

            _userRepository = new Mock<IUserRepository>();
            _userRepository.Setup(a => a.Find(It.IsAny<Expression<Func<User, bool>>>(), false)).Throws(new Exception());

            _chatMessagesLogic = new ChatMessagesLogic(_chatMessageRepository.Object, _userRepository.Object);

            Assert.Throws<BlogException>(() => _chatMessagesLogic.GetMoreChatMessagesByUser("FooBar", "Drums", 15));
        }
        public void ShouldThrowExceptionWhenGettingToUserIsNullOnMoreChatMessagesByName()
        {
            _chatMessageRepository = new Mock<IChatMessageRepository>();
            _chatMessageRepository.Setup(a => a.GetMoreChatMessages(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Returns(new List<ChatMessage>());

            _userRepository = new Mock<IUserRepository>();
            _userRepository.SetupSequence(a => a.Find(It.IsAny<Expression<Func<User, bool>>>(), false))
                .Returns(_user)
                .Returns(new List<User>());

            _chatMessagesLogic = new ChatMessagesLogic(_chatMessageRepository.Object, _userRepository.Object);

            var result = Assert.Throws<BlogException>(() => _chatMessagesLogic.GetMoreChatMessagesByUser("FooBar", "Drums", 15));
            Assert.AreEqual("No user found with username Drums", result.Message);
        }
        public void ShouldThrowExceptionWhenGettingMoreChatMessagesByIdFails()
        {
            _chatMessageRepository = new Mock<IChatMessageRepository>();
            _chatMessageRepository.Setup(a => a.GetMoreChatMessages(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Throws(new Exception());

            _userRepository = new Mock<IUserRepository>();

            _chatMessagesLogic = new ChatMessagesLogic(_chatMessageRepository.Object, _userRepository.Object);

            Assert.Throws<BlogException>(() => _chatMessagesLogic.GetMoreChatMessagesByUser(1, 2, 15));
        }
        public void ShouldGetMoreChatMessagesByName()
        {
            _chatMessageRepository = new Mock<IChatMessageRepository>();
            _chatMessageRepository.Setup(a => a.GetMoreChatMessages(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Returns(_chatMessages);

            _userRepository = new Mock<IUserRepository>();
            _userRepository.Setup(a => a.Find(It.IsAny<Expression<Func<User, bool>>>(), false)).Returns(_user);

            _chatMessagesLogic = new ChatMessagesLogic(_chatMessageRepository.Object, _userRepository.Object);

            var result = _chatMessagesLogic.GetMoreChatMessagesByUser("FooBar", "Drums", 15);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf(typeof(List<Common.Contracts.ChatMessage>), result);
        }
        public void ShouldReturnEmptyListWhenGettingMoreChatMessagesByIdIsNull()
        {
            _chatMessageRepository = new Mock<IChatMessageRepository>();
            _chatMessageRepository.Setup(a => a.GetMoreChatMessages(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Returns(new List<ChatMessage>());

            _userRepository = new Mock<IUserRepository>();

            _chatMessagesLogic = new ChatMessagesLogic(_chatMessageRepository.Object, _userRepository.Object);

            var result = _chatMessagesLogic.GetMoreChatMessagesByUser(1, 2, 15);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf(typeof(List<Common.Contracts.ChatMessage>), result);
            Assert.AreEqual(0, result.Count);
        }