示例#1
0
        public void SendMessage_GoodInput_AddedInRepositoryForAllRecipients()
        {
            MockUserRepository    userRepository    = InitMockUserRepository();
            MockMessageRepository messageRepository = InitMockMessageRepository(userRepository);
            var             notificationSender      = Substitute.For <INotificationSender>();
            IMessageManager messageManager          = new MessageManager
            {
                MessageRepository  = messageRepository,
                UserRepository     = userRepository,
                NotificationSender = notificationSender
            };
            List <UserEntity> users = userRepository.Storage;

            var newMessage = new MessageInfo {
                Text = "text", SenderId = users[0].Id
            };
            List <UserEntity> recipients = userRepository.Storage.Where(x => x.Id != newMessage.SenderId).ToList();
            int messagesCount            = messageRepository.Storage.Count;

            messageManager.SendMessage(newMessage);

            Assert.Equal(messagesCount + recipients.Count, messageRepository.Storage.Count);
            recipients.ForEach(x =>
            {
                MessageEntity actual = messageRepository.Storage.First(y => y.RecipientId == x.Id);
                Assert.IsType <MessageEntity>(actual);
                Assert.NotEqual(actual.RecipientId, newMessage.SenderId);
                Assert.False(actual.IsDelivered);
            });
        }
示例#2
0
        private MockMessageRepository InitMockMessageRepository(MockUserRepository userRepository)
        {
            var messageRepository         = new MockMessageRepository();
            List <MessageEntity> messages = CreateMessages(userRepository);

            messageRepository.Storage.AddRange(messages);
            return(messageRepository);
        }
示例#3
0
        public void GetAllMessages_CorrectResult()
        {
            MockUserRepository    userRepository    = InitMockUserRepository();
            MockMessageRepository messageRepository = InitMockMessageRepository(userRepository);
            IMessageManager       messageManager    = new MessageManager
            {
                MessageRepository = messageRepository,
                UserRepository    = userRepository
            };
            List <MessageEntity> messages = messageRepository.Storage;
            int itemsCount = messageRepository.Storage.Count;

            List <MessageInfo> result = messageManager.GetAllMessages();

            Assert.Equal(itemsCount, result.Count);
            Assert.Equal(messages[0].Text, result[0].Text);
            Assert.Equal(messages[0].SenderId, result[0].SenderId);
            Assert.Equal(messages[1].Text, result[1].Text);
            Assert.Equal(messages[1].SenderId, result[1].SenderId);
        }
示例#4
0
        public void GetNewMessages_CorrectResult()
        {
            MockUserRepository    userRepository    = InitMockUserRepository();
            MockMessageRepository messageRepository = InitMockMessageRepository(userRepository);
            IMessageManager       messageManager    = new MessageManager
            {
                MessageRepository = messageRepository,
                UserRepository    = userRepository
            };
            List <MessageEntity> messages = messageRepository.Storage;
            List <UserEntity>    users    = userRepository.Storage;

            List <MessageInfo> result = messageManager.GetNewMessages(users[0].Id);

            Assert.Equal(1, result.Count);
            Assert.Equal(messages[2].Text, result[0].Text);
            Assert.Equal(messages[2].SenderId, result[0].SenderId);
            MessageEntity actual = messageRepository.Storage.First(x => x.Id == messages[2].Id);

            Assert.True(actual.IsDelivered);
        }