Example #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);
            });
        }
Example #2
0
        private MockUserRepository InitMockUserRepository()
        {
            var repository          = new MockUserRepository();
            List <UserEntity> users = CreateUsers();

            repository.Storage.AddRange(users);
            return(repository);
        }
Example #3
0
        private MockMessageRepository InitMockMessageRepository(MockUserRepository userRepository)
        {
            var messageRepository         = new MockMessageRepository();
            List <MessageEntity> messages = CreateMessages(userRepository);

            messageRepository.Storage.AddRange(messages);
            return(messageRepository);
        }
Example #4
0
        private List <MessageEntity> CreateMessages(MockUserRepository userRepository)
        {
            List <UserEntity> users = userRepository.Storage;
            UserEntity        user1 = users[0];
            UserEntity        user2 = users[1];

            var message1 = new MessageEntity
            {
                Id          = Guid.NewGuid(),
                Text        = "text1",
                CreateDate  = DateTime.Now,
                SenderId    = user1.Id,
                Sender      = user1,
                RecipientId = user2.Id,
                Recipient   = user2,
                IsDelivered = false
            };
            var message2 = new MessageEntity
            {
                Id          = Guid.NewGuid(),
                Text        = "text2",
                CreateDate  = DateTime.Now,
                SenderId    = user2.Id,
                Sender      = user2,
                RecipientId = user1.Id,
                Recipient   = user1,
                IsDelivered = false
            };
            var message3 = new MessageEntity
            {
                Id          = Guid.NewGuid(),
                Text        = "text3",
                CreateDate  = DateTime.Now,
                SenderId    = user2.Id,
                Sender      = user2,
                RecipientId = user1.Id,
                Recipient   = user1,
                IsDelivered = true
            };

            return(new List <MessageEntity> {
                message1, message2, message3
            });
        }
Example #5
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);
        }
Example #6
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);
        }