Esempio n. 1
0
        public void ExportMultipleConversationsFolderCollisionTest()
        {
            List <IConversation> conversations = new List <IConversation>();

            conversations.Add(DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.ObamaCell));
            conversations.Add(DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.HarryLooseTieCell));

            const string             outputPath     = "X:\\backup\\";
            MockFileSystem           mockFileSystem = new MockFileSystem();
            ConversationExporterBase exporter       = new ConversationExporterPlaintext(mockFileSystem);

            exporter.ExportMultipleConversations(conversations, new MockDisplayOptions(), outputPath, null);

            string createdDirectory = "";

            foreach (string directory in mockFileSystem.ListDirectories())
            {
                createdDirectory = directory;
            }

            exporter.ExportMultipleConversations(conversations, new MockDisplayOptions(), outputPath, null);

            Assert.AreEqual(2, mockFileSystem.CountDirectoryContents(createdDirectory));
            Assert.AreEqual(2, mockFileSystem.DirectoryCount);
            Assert.AreEqual(4, mockFileSystem.FileCount);
        }
        public void InvalidArgAggregateTest()
        {
            IConversation      conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.TonyWolfCell);
            GraphDataGenerator generator    = new GraphDataGenerator();

            generator.MessageCountAggregate(conversation, GraphAggregateType.Unknown);
        }
Esempio n. 3
0
        private MergingConversationManager CreateMergingConversationManager(DummyContactId[] contactIds, DummyPhoneNumberId[] messageSetIds, ILoadingProgressCallback progressCallback)
        {
            if (progressCallback != null)
            {
                int workEstimate = ConversationManager.GetWorkEstimate(contactIds.Length, messageSetIds.Length, 0, 0) +
                                   MergingConversationManager.GetWorkEstimateByContacts(contactIds.Length);
                progressCallback.Begin(workEstimate);
            }

            ConversationManager conversationManager = DummyConversationDataGenerator.GetConversationManager(contactIds, messageSetIds, progressCallback);

            if (progressCallback != null)
            {
                progressCallback.UpdateRemaining(MergingConversationManager.GetWorkEstimate(conversationManager.ConversationCount));
            }

            MergingConversationManager mergingConversationManager = new MergingConversationManager(conversationManager, progressCallback);

            if (progressCallback != null)
            {
                progressCallback.End();
            }

            return(mergingConversationManager);
        }
Esempio n. 4
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);
        }
        public void WriteConversationContentsTest()
        {
            IConversation conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.ObamaCell);

            string exportedConversationExpected = "Tuesday, Nov 4, 2008\r\n" +
                                                  "Me (\u200E10:18:05 PM\u202C): Congrats, buddy!\r\n" +
                                                  "Barack Obama (\u200E10:18:40 PM\u202C): Thanks. Couldn't have done it without you!\r\n" +
                                                  "Me (\u200E10:25:58 PM\u202C): np\r\n" +
                                                  "\r\n" +
                                                  "Sunday, May 1, 2011\r\n" +
                                                  "Me (\u200E8:47:27 AM\u202C): Yo, I think I know where Osama Bin Laden is hiding?\r\n" +
                                                  "Barack Obama (\u200E8:50:52 AM\u202C): o rly?\r\n" +
                                                  "Me (\u200E8:51:21 AM\u202C): Yeah, dude. Abottabad, Pakistan. Huge compound. Can't miss it.\r\n" +
                                                  "Barack Obama (\u200E8:51:46 AM\u202C): Sweet. I'll send some navy seals.";

            ConversationExporterPlaintext_Accessor conversationExporter = new ConversationExporterPlaintext_Accessor(new MockFileSystem());

            MemoryStream outputStream = new MemoryStream();
            StreamWriter sw           = new StreamWriter(outputStream);

            conversationExporter.WriteConversationContents(sw, conversation, new MockDisplayOptions(), new AttachmentExportLocator(null));
            sw.Flush();

            outputStream.Seek(0, SeekOrigin.Begin);
            StreamReader sr = new StreamReader(outputStream);

            string exportedConversationActual = sr.ReadToEnd();

            Assert.AreEqual(exportedConversationExpected, exportedConversationActual);
        }
        public List <ITextGraphData> GetConversationGraphData(DummyPhoneNumberId DummyPhoneNumberId, GraphTimeUnit timeUnit)
        {
            IConversation      conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId);
            GraphDataGenerator generator    = new GraphDataGenerator();

            return(new List <ITextGraphData>(generator.MessageCountPerUnitTime(conversation, timeUnit)));
        }
        public List <ITextGraphData> GetAggregateConversationGraphData(DummyPhoneNumberId DummyPhoneNumberId, GraphAggregateType aggregateType)
        {
            IConversation      conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId);
            GraphDataGenerator generator    = new GraphDataGenerator();

            return(new List <ITextGraphData>(generator.MessageCountAggregate(conversation, aggregateType)));
        }
        public void InvalidArgPerUnitTimeTest()
        {
            IConversation      conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.TonyWolfCell);
            GraphDataGenerator generator    = new GraphDataGenerator();

            generator.MessageCountPerUnitTime(conversation, GraphTimeUnit.Unknown);
        }
Esempio n. 9
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);
        }
Esempio n. 10
0
        internal virtual IConversationManager CreateConversationManager()
        {
            DummyContactId[]     dummyContactIds    = { DummyContactId.Davola, DummyContactId.NeverTexter, DummyContactId.Obama, DummyContactId.ReliableLarry };
            DummyPhoneNumberId[] dummyMessageSetIds = { DummyPhoneNumberId.DavolaCell, DummyPhoneNumberId.DavolaiPhone, DummyPhoneNumberId.NeverTexterCell, DummyPhoneNumberId.NeverTexterHome,
                                                        DummyPhoneNumberId.ObamaCell,  DummyPhoneNumberId.ReliableLarryOffice };

            return(DummyConversationDataGenerator.GetConversationManager(dummyContactIds, dummyMessageSetIds, null));
        }
        public void CreateMultiNumberExportTest()
        {
            IConversation conversationCell   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.DavolaCell);
            IConversation conversationiPhone = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.DavolaiPhone);
            IConversation conversationMerged = new MergedConversation(conversationCell, conversationiPhone);

            VerifyConversationHeaderMatches(conversationMerged, "iPhone Text (SMS) Conversation History with Joe Davola - Phone Numbers: 212-555-8728, 646-555-9189.");
        }
Esempio n. 12
0
        private GraphWindowModel_Accessor GetEmptyPopulatedGraphWindowModel()
        {
            GraphWindowModel_Accessor model = new GraphWindowModel_Accessor(new MockDisplayOptions(), new MockPhoneSelectOptions());

            model.ConversationManager = DummyConversationDataGenerator.GetConversationManagerEmpty();

            return(model);
        }
Esempio n. 13
0
        public void KnownUnknownChatTest()
        {
            IConversation conversation = DummyConversationDataGenerator.GetChatConversation(DummyChatRoomId.ChatRoomD);

            Assert.AreEqual(2, conversation.AssociatedContacts.Count);
            Assert.IsNotNull(conversation.AssociatedContacts[0]);
            Assert.IsNotNull(conversation.AssociatedContacts[1]);
        }
        public void EmptyPerUnitTimeTest()
        {
            IConversation      conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.NeverTexterCell);
            GraphDataGenerator generator    = new GraphDataGenerator();

            ITextGraphDataCollection perMonthCollection = generator.MessageCountPerUnitTime(conversation, GraphTimeUnit.Month);

            Assert.AreEqual(0, perMonthCollection.Count);
        }
        private void VerifyRenderedConversationMatchesExpected(DummyPhoneNumberId phoneNumberId, string renderedConversationExpected)
        {
            IConversation conversation = DummyConversationDataGenerator.GetSingleConversation(phoneNumberId);

            ConversationRendererPlaintext renderer = new ConversationRendererPlaintext(new MockDisplayOptions(), conversation);

            string renderedConversationActual = renderer.RenderMessagesAsString(ConversationRendererBase.RenderAllMessages);

            Assert.AreEqual(renderedConversationExpected, renderedConversationActual);
        }
        private void VerifyRenderedMessagesMatchExpected(Color color, string cssAttributeExpected)
        {
            IDisplayOptionsReadOnly           displayOptions = new MockDisplayOptions();
            IConversation                     conversation   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.ObamaCell);
            ConversationRendererHtml_Accessor renderer       = new ConversationRendererHtml_Accessor(displayOptions, conversation, new AttachmentExportLocator(null));

            string cssAttributeActual = renderer.ColorToCssAttribute(color);

            Assert.AreEqual(cssAttributeExpected, cssAttributeActual);
        }
        private ConversationWindowModel GetEmptyPopulatedConversationWindowModel()
        {
            IDisplayOptions         displayOptions     = new MockDisplayOptions();
            IPhoneSelectOptions     phoneSelectOptions = new MockPhoneSelectOptions();
            ConversationWindowModel model = new ConversationWindowModel(displayOptions, phoneSelectOptions);

            model.ConversationManager = DummyConversationDataGenerator.GetConversationManagerEmpty();

            return(model);
        }
        private void VerifyRenderedMessagesMatchExpected(DummyPhoneNumberId phoneNumberId, string renderedExpected)
        {
            IDisplayOptionsReadOnly displayOptions = new MockDisplayOptions();
            IConversation           conversation   = DummyConversationDataGenerator.GetSingleConversation(phoneNumberId);
            IConversationRenderer   renderer       = new ConversationRendererHtml(displayOptions, conversation, new AttachmentExportLocator(null));

            string renderedActual = renderer.RenderMessagesAsString(ConversationRendererBase.RenderAllMessages);

            Assert.AreEqual(renderedExpected, renderedActual);
        }
Esempio n. 19
0
        public void NullCallbackTest()
        {
            DummyContactId[]     dummyContactIds     = { DummyContactId.Davola, DummyContactId.Obama };
            DummyPhoneNumberId[] DummyPhoneNumberIds = { DummyPhoneNumberId.DavolaCell, DummyPhoneNumberId.DavolaiPhone, DummyPhoneNumberId.ObamaCell };

            ConversationManager conversationManager = CreateConversationManager(dummyContactIds, DummyPhoneNumberIds, null);

            int conversationCountExpected = DummyConversationDataGenerator.GetPhoneNumberCount(dummyContactIds);

            Assert.AreEqual(conversationCountExpected, conversationManager.ConversationCount);
        }
        public void CalculateEmptyStatisticsTest()
        {
            Contact                 dummyContact = DummyConversationDataGenerator.GetContacts(DummyContactId.NeverTexter)[0];
            IConversation           conversation = new SingleNumberConversation(dummyContact);
            IConversationStatistics statsActual  = ConversationStatisticsGenerator.CalculateStatistics(conversation);

            Assert.AreEqual(0, statsActual.MessagesSent);
            Assert.AreEqual(0, statsActual.MessagesReceived);
            Assert.AreEqual(0, statsActual.MessagesExchanged);
            Assert.AreEqual(0, statsActual.DayCount);
            Assert.AreEqual(0, statsActual.MessagesPerDay);
        }
Esempio n. 21
0
        public void EmptyTest()
        {
            MockLoadingProgressCallback progressCallback = new MockLoadingProgressCallback();

            DummyContactId[]     dummyContactIds     = { };
            DummyPhoneNumberId[] DummyPhoneNumberIds = { };

            ConversationManager   conversationManager   = DummyConversationDataGenerator.GetConversationManager(dummyContactIds, DummyPhoneNumberIds, progressCallback);
            AggregateConversation aggregateConversation = new AggregateConversation(new List <IConversation>());

            Assert.AreEqual(0, aggregateConversation.MessageCount);
        }
Esempio n. 22
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 ExportAttachmentErrorStillExportsConversation()
        {
            MockFileSystem           mockFileSystem = new MockFileSystem();
            ConversationExporterHtml exporter       = new ConversationExporterHtml(mockFileSystem);

            IConversation      conversation       = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.FrankieCoolPicsCell);
            MockDisplayOptions mockDisplayOptions = new MockDisplayOptions();
            List <ExportError> exportErrors       = exporter.Export(conversation, mockDisplayOptions, @"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012.html");

            Assert.AreEqual(1, exportErrors.Count);
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012.html"));
        }
Esempio n. 24
0
        public void TestEquals()
        {
            IContact davolaCell   = DummyConversationDataGenerator.GetContact(DummyPhoneNumberId.DavolaCell);
            IContact davolaiPhone = DummyConversationDataGenerator.GetContact(DummyPhoneNumberId.DavolaiPhone);

            MergedContact mergedContact             = new MergedContact(davolaCell, davolaiPhone);
            MergedContact mergedContactCopy         = new MergedContact(davolaCell, davolaiPhone);
            MergedContact mergedContactReverseOrder = new MergedContact(davolaiPhone, davolaCell);

            Assert.AreEqual(mergedContact, mergedContact);
            Assert.AreEqual(mergedContact, mergedContactCopy);
            Assert.AreEqual(mergedContact, mergedContactReverseOrder);
        }
Esempio n. 25
0
        public void ExportMultipleConversationsEmptyConversationTest()
        {
            List <IConversation> conversations = new List <IConversation>();

            conversations.Add(DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.NeverTexterCell));

            const string             outputPath     = "X:\\backup\\";
            MockFileSystem           mockFileSystem = new MockFileSystem();
            ConversationExporterBase exporter       = new ConversationExporterPlaintext(mockFileSystem);

            exporter.ExportMultipleConversations(conversations, new MockDisplayOptions(), outputPath, null);
            Assert.AreEqual(0, mockFileSystem.FileCount);
        }
Esempio n. 26
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);
        }
Esempio n. 27
0
        private static RichTextBox GetConversationRichTextBox()
        {
            IConversation conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.ObamaCell);

            ConversationRendererRichText renderer = new ConversationRendererRichText(new MockDisplayOptions(), conversation);

            IEnumerable <Paragraph> paragraphs = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);

            RichTextBox conversationRichTextBox = new RichTextBox();

            conversationRichTextBox.Document.Blocks.Clear();
            conversationRichTextBox.Document.Blocks.AddRange(paragraphs);

            return(conversationRichTextBox);
        }
Esempio n. 28
0
        public void ExportMultipleConversationsTest()
        {
            List <IConversation> conversations = new List <IConversation>();

            conversations.Add(DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.ObamaCell));
            conversations.Add(DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.HarryLooseTieCell));

            const string             outputPath     = "X:\\backup\\";
            MockFileSystem           mockFileSystem = new MockFileSystem();
            ConversationExporterBase exporter       = new ConversationExporterPlaintext(mockFileSystem);

            exporter.ExportMultipleConversations(conversations, new MockDisplayOptions(), outputPath, null);

            Assert.IsTrue(mockFileSystem.DirectoryExists(outputPath));
            Assert.AreEqual(2, mockFileSystem.FileCount);
        }
Esempio n. 29
0
        public void EmptyMergedConversationTest()
        {
            MockLoadingProgressCallback progressCallback = new MockLoadingProgressCallback();

            DummyContactId[]     dummyContactIds     = { DummyContactId.NeverTexter };
            DummyPhoneNumberId[] DummyPhoneNumberIds = { };

            MergingConversationManager mergingConversationManager = CreateMergingConversationManager(dummyContactIds, DummyPhoneNumberIds, progressCallback);

            Assert.AreEqual(1, mergingConversationManager.ConversationCount);

            int expectedProgressMax = (DummyConversationDataGenerator.GetPhoneNumberCount(dummyContactIds) * 2) +
                                      DummyConversationDataGenerator.GetMessageCount(DummyPhoneNumberIds);

            Assert.AreEqual(expectedProgressMax, progressCallback.Maximum);
            ConversationManagerTest.VerifySuccessfulCompletion(progressCallback);
        }
Esempio n. 30
0
        public void MessageCountTest()
        {
            DummyContactId[]     dummyContactIds     = { DummyContactId.Davola, DummyContactId.Obama, DummyContactId.NeverTexter };
            DummyPhoneNumberId[] DummyPhoneNumberIds = { DummyPhoneNumberId.DavolaCell, DummyPhoneNumberId.DavolaiPhone, DummyPhoneNumberId.ObamaCell, DummyPhoneNumberId.UnknownLawnmower };

            ConversationManager   conversationManager   = DummyConversationDataGenerator.GetConversationManager(dummyContactIds, DummyPhoneNumberIds, null);
            AggregateConversation aggregateConversation = new AggregateConversation(conversationManager);

            int expectedMessageCount = 0;

            foreach (DummyPhoneNumberId setId in DummyPhoneNumberIds)
            {
                expectedMessageCount += DummyConversationDataGenerator.GetMessageCount(setId);
            }

            Assert.AreEqual(expectedMessageCount, aggregateConversation.MessageCount);
        }