Example #1
0
        public void GetSenderColorMergedConversationTest()
        {
            IConversation        conversation          = DummyConversationDataGenerator.GetMergedConversation(DummyContactId.Davola);
            IConversationMessage cellIncomingMessage   = conversation.GetMessage(0);
            IConversationMessage iPhoneIncomingMessage = conversation.GetMessage(11);
            MockDisplayOptions   displayOptions        = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            System.Windows.Media.Color cellColor   = renderer.GetSenderDisplayColor(cellIncomingMessage);
            System.Windows.Media.Color iPhoneColor = renderer.GetSenderDisplayColor(iPhoneIncomingMessage);

            Assert.AreEqual(cellColor, iPhoneColor);
        }
Example #2
0
        public void RenderSingleMessage24HourTimeTest()
        {
            IConversation        conversation   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle);
            IConversationMessage message        = conversation.GetMessage(0);
            MockDisplayOptions   displayOptions = new MockDisplayOptions();

            displayOptions.TimeDisplayFormat = TimeDisplayFormat.HourMinSec24h;

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List <Inline> inlineListExpected = new List <Inline>();
            Span          messagePrefix      = new Span();

            messagePrefix.Inlines.Add(new Bold(new Run("Unknown Sender")));
            messagePrefix.Inlines.Add(new Run(" (\u200E20:38:17\u202C)"));
            messagePrefix.Inlines.Add(new Run(": "));
            inlineListExpected.Add(messagePrefix);
            inlineListExpected.Add(new ConversationContentRun(message.MessageContents));

            List <Inline> inlineListActual = new List <Inline>();

            inlineListActual.AddRange(renderer.ConversationMessageToInlines(message));

            VerifyInlineListsMatch(inlineListExpected, inlineListActual);
        }
Example #3
0
        private void VerifyMessagesMatch(IConversation conversation, TextMessage[] messagesExpected)
        {
            Assert.AreEqual(messagesExpected.Length, conversation.MessageCount);

            for (int messageIndex = 0; messageIndex < conversation.MessageCount; messageIndex++)
            {
                IConversationMessage conversationMessageCurrent = conversation.GetMessage(messageIndex);
                TextMessage          textMessageExpected        = messagesExpected[messageIndex];
                VerifyTextMessageMatchesConversationMessage(textMessageExpected, conversationMessageCurrent);
            }
        }
Example #4
0
        public void GetSenderColorUnknownContactTest()
        {
            IConversation        conversation    = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle);
            IConversationMessage incomingMessage = conversation.GetMessage(0);
            MockDisplayOptions   displayOptions  = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            System.Windows.Media.Color incomingMessageColor = renderer.GetSenderDisplayColor(incomingMessage);

            Assert.IsNotNull(incomingMessageColor);
        }
Example #5
0
        public void SimpleChatTest()
        {
            DummyContactId[]     dummyContactIds     = { DummyContactId.Obama, DummyContactId.AnthonyWeiner };
            DummyPhoneNumberId[] dummyPhoneNumberIds = { };
            DummyChatRoomId[]    dummyChatRoomIds    = { DummyChatRoomId.ChatRoomA };

            ConversationManager conversationManager = CreateConversationManager(dummyContactIds, dummyPhoneNumberIds, dummyChatRoomIds, null);

            IConversation chatConversation = conversationManager.GetConversation(2);

            //Assert.IsNull(chatConversation.GetMessage(0).Contact);
            Assert.IsTrue(chatConversation.GetMessage(0).IsOutgoing);

            IContact contactExpected;
            IContact contactActual;

            contactExpected = DummyConversationDataGenerator.GetContacts(DummyContactId.Obama)[0];
            contactActual   = chatConversation.GetMessage(1).Contact;
            Assert.AreEqual(contactExpected, chatConversation.GetMessage(1).Contact);
            Assert.IsFalse(chatConversation.GetMessage(1).IsOutgoing);

            IContact anthonyWeinerContact = DummyConversationDataGenerator.GetContacts(DummyContactId.AnthonyWeiner)[0];

            Assert.AreEqual(anthonyWeinerContact, chatConversation.GetMessage(2).Contact);
            Assert.IsFalse(chatConversation.GetMessage(2).IsOutgoing);
        }
Example #6
0
        public void SingleMessageConversationTest()
        {
            IConversation   conversation   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle);
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List <Paragraph> paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);

            Assert.AreEqual(1, paragraphsActual.Count);

            IConversationMessage message = conversation.GetMessage(0);

            Paragraph paragraphExpected = new Paragraph();

            paragraphExpected.Inlines.Add(ConversationRendererRichText_Accessor.DateAsInline(message.Timestamp));
            paragraphExpected.Inlines.Add(new LineBreak());
            paragraphExpected.Inlines.AddRange(renderer.ConversationMessageToInlines(message));

            VerifyParagraphsEqual(paragraphExpected, paragraphsActual[0]);

            paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);
            Assert.AreEqual(0, paragraphsActual.Count);
        }
Example #7
0
        private void ProcessMessage(int messageIndex)
        {
            IConversationMessage message = _conversation.GetMessage(messageIndex);

            if (message.Timestamp.Date != _lastMessageDate)
            {
                StartNewParagraph();

                AddDateLine(message.Timestamp);

                _lastMessageDate = message.Timestamp.Date;
            }

            AddLineBreak();

            AddMessageLine(message);

            if (_displayOptions.LoadMmsAttachments && message.HasAttachments())
            {
                foreach (IMessageAttachment attachment in message.Attachments)
                {
                    AddLineBreak();

                    try
                    {
                        AddAttachment(attachment);
                    }
                    catch
                    {
                        // Ignore attachment errors
                    }
                }
            }

            _lastMessageReadIndex = messageIndex;
        }
        private void VerifyMessagesMatch(IConversation conversation, TextMessage[] messagesExpected)
        {
            Assert.AreEqual(messagesExpected.Length, conversation.MessageCount);

            for (int messageIndex = 0; messageIndex < conversation.MessageCount; messageIndex++)
            {
                IConversationMessage conversationMessageCurrent = conversation.GetMessage(messageIndex);
                TextMessage textMessageExpected = messagesExpected[messageIndex];
                VerifyTextMessageMatchesConversationMessage(textMessageExpected, conversationMessageCurrent);
            }
        }