Example #1
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 #2
0
        private List <Paragraph> GetMultiDayConversationRenderingExpected(IConversation conversation, ConversationRendererRichText_Accessor renderer)
        {
            List <IConversationMessage> messages           = new List <IConversationMessage>(conversation);
            List <Paragraph>            paragraphsExpected = new List <Paragraph>();

            Paragraph paragraph = new Paragraph();

            paragraph.Inlines.Add(ConversationRendererRichText_Accessor.DateAsInline(messages[0].Timestamp));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[0]));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[1]));
            paragraphsExpected.Add(paragraph);

            paragraph = new Paragraph();
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.Add(ConversationRendererRichText_Accessor.DateAsInline(messages[2].Timestamp));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[2]));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[3]));
            paragraphsExpected.Add(paragraph);

            return(paragraphsExpected);
        }
        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 #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);
        }
        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 #6
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 #7
0
        public void MultiDayConversationTest()
        {
            IConversation   conversation   = GetMultiDayConversation();
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

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

            List <Paragraph> paragraphsExpected = GetMultiDayConversationRenderingExpected(conversation, renderer);

            VerifyParagraphListsEqual(paragraphsExpected, paragraphsActual);

            paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);
            Assert.AreEqual(0, paragraphsActual.Count);
        }
        public void MultiDayConversationTest()
        {
            IConversation conversation = GetMultiDayConversation();
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

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

            List<Paragraph> paragraphsExpected = GetMultiDayConversationRenderingExpected(conversation, renderer);

            VerifyParagraphListsEqual(paragraphsExpected, paragraphsActual);

            paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);
            Assert.AreEqual(0, paragraphsActual.Count);
        }
Example #9
0
        public void RenderIncrementallyTest()
        {
            IConversation   conversation   = GetMultiDayConversation();
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List <Paragraph> paragraphsActual = new List <Paragraph>();

            const int MessageRenderSize = 1;

            List <Paragraph> paragraphsCurrent;

            while (renderer.HasUnprocessedMessages)
            {
                paragraphsCurrent = renderer.RenderMessagesAsParagraphs(MessageRenderSize);
                paragraphsActual.AddRange(paragraphsCurrent);
            }

            List <Paragraph> paragraphsExpected = GetMultiDayConversationRenderingExpected(conversation, renderer);

            VerifyParagraphListsEqual(paragraphsExpected, paragraphsActual);
        }
Example #10
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);
        }
        private List<Paragraph> GetMultiDayConversationRenderingExpected(IConversation conversation, ConversationRendererRichText_Accessor renderer)
        {
            List<IConversationMessage> messages = new List<IConversationMessage>(conversation);
            List<Paragraph> paragraphsExpected = new List<Paragraph>();

            Paragraph paragraph = new Paragraph();
            paragraph.Inlines.Add(ConversationRendererRichText_Accessor.DateAsInline(messages[0].Timestamp));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[0]));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[1]));
            paragraphsExpected.Add(paragraph);

            paragraph = new Paragraph();
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.Add(ConversationRendererRichText_Accessor.DateAsInline(messages[2].Timestamp));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[2]));
            paragraph.Inlines.Add(new LineBreak());
            paragraph.Inlines.AddRange(renderer.ConversationMessageToInlines(messages[3]));
            paragraphsExpected.Add(paragraph);

            return paragraphsExpected;
        }
        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);
        }
        public void RenderSingleMessageHideTimeTest()
        {
            IConversation conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle);
            IConversationMessage message = conversation.GetMessage(0);
            MockDisplayOptions displayOptions = new MockDisplayOptions();

            displayOptions.TimeDisplayFormat = TimeDisplayFormat.HideTime;

            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(": "));
            inlineListExpected.Add(messagePrefix);
            inlineListExpected.Add(new ConversationContentRun(message.MessageContents));

            List<Inline> inlineListActual = new List<Inline>();
            inlineListActual.AddRange(renderer.ConversationMessageToInlines(message));

            VerifyInlineListsMatch(inlineListExpected, inlineListActual);
        }
        public void RenderIncrementallyTest()
        {
            IConversation conversation = GetMultiDayConversation();
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List<Paragraph> paragraphsActual = new List<Paragraph>();

            const int MessageRenderSize = 1;

            List<Paragraph> paragraphsCurrent;
            while (renderer.HasUnprocessedMessages)
            {
                paragraphsCurrent = renderer.RenderMessagesAsParagraphs(MessageRenderSize);
                paragraphsActual.AddRange(paragraphsCurrent);
            }

            List<Paragraph> paragraphsExpected = GetMultiDayConversationRenderingExpected(conversation, renderer);

            VerifyParagraphListsEqual(paragraphsExpected, paragraphsActual);
        }