private SingleNumberConversation GetDummyConversation() { SingleNumberConversation conversation = new SingleNumberConversation(GetDummyContact()); conversation.AddMessage(GetMessage1()); conversation.AddMessage(GetMessage2()); conversation.AddMessage(GetMessage3()); return(conversation); }
public void StandardConversationTest() { SingleNumberConversation conversation = new SingleNumberConversation(GetDummyContact()); conversation.AddMessage(GetMessage1()); conversation.AddMessage(GetMessage3()); conversation.AddMessage(GetMessage2()); conversation.AddMessage(GetMessage4()); TextMessage[] textMessagesExpected = { GetMessage1(), GetMessage2(), GetMessage3(), GetMessage4() }; VerifyMessagesMatch(conversation, textMessagesExpected); }
public void EmptyTest() { SingleNumberConversation conversation = new SingleNumberConversation(GetDummyContact()); Assert.AreEqual(0, conversation.MessageCount); int messagesSeen = 0; foreach (IConversationMessage message in conversation) { messagesSeen++; } Assert.AreEqual(0, messagesSeen); }
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); }
public void NullMessageContentsTest() { SingleNumberConversation conversation = new SingleNumberConversation(GetDummyContact()); conversation.AddMessage(GetMessage1()); conversation.AddMessage(GetMessage3()); conversation.AddMessage(GetNullContentMessage()); conversation.AddMessage(GetMessage4()); TextMessage[] textMessagesExpected = { GetMessage1(), GetMessage3(), GetMessage4() }; VerifyMessagesMatch(conversation, textMessagesExpected); }
private void LoadMessage(Dictionary<string, IConversation> conversationHashTable, TextMessage message, ILoadingProgressCallback progressCallback) { CheckForCancel(progressCallback); string conversationKey; PhoneNumber messagePhoneNumber = new PhoneNumber(message.Address, message.Country); string phoneNumberStripped = PhoneNumber.Strip(messagePhoneNumber); if (message.ChatId != null) { conversationKey = message.ChatId; } else { conversationKey = phoneNumberStripped; } if (string.IsNullOrEmpty(conversationKey)) { return; } Contact unknownContact = new Contact(Contact.UnknownContactId, null, null, null, messagePhoneNumber); message.Contact = GetContactByPhoneNumber(messagePhoneNumber); if (message.Contact == null) { message.Contact = unknownContact; } else { // // Update the contact's phone number to include country information. // foreach (PhoneNumber contactPhoneNumber in message.Contact.PhoneNumbers) { if (PhoneNumber.NumbersAreEquivalent(contactPhoneNumber, messagePhoneNumber)) { contactPhoneNumber.Country = message.Country; break; } } } IConversation conversation; if (conversationHashTable.ContainsKey(conversationKey)) { conversation = conversationHashTable[conversationKey]; // If The contact is not part of the conversation, add them here. This can happen with "orphaned" chat // messages. if (!message.Contact.Equals(unknownContact) && !conversation.AssociatedContacts.Contains(message.Contact)) { conversation.AssociatedContacts.Add(message.Contact); } } else if (message.ChatId != null) { // It's possible to have "orphaned" chat messages, where they appear in the message database with a chat ID // but the chat ID was not in the chat room database. Handle those here. List<IContact> chatContacts = new List<IContact>(); if (!message.Contact.Equals(unknownContact)) { chatContacts.Add(message.Contact); } conversation = new ChatConversation(chatContacts); conversationHashTable.Add(message.ChatId, conversation); } else { conversation = new SingleNumberConversation(unknownContact); conversationHashTable.Add(conversationKey, conversation); } _messageLookupTable.Add(message.MessageId, message); conversation.AddMessage(message); IncrementWorkProgress(progressCallback); }
private void LoadContact(Dictionary<string, IConversation> conversationHashTable, IContact contact, ILoadingProgressCallback progressCallback) { foreach (PhoneNumber contactPhoneNumber in contact.PhoneNumbers) { CheckForCancel(progressCallback); string strippedNumber = PhoneNumber.Strip(contactPhoneNumber); // // If multiple contacts share a single phone number, the duplicate phone numbers are ignored and // only the first contact seen is associated with the number. // if (!conversationHashTable.ContainsKey(strippedNumber)) { SingleNumberConversation conversation = new SingleNumberConversation(contact); conversationHashTable.Add(strippedNumber, conversation); } if (!_contactLookupTable.ContainsKey(strippedNumber)) { _contactLookupTable[strippedNumber] = contact; } } IncrementWorkProgress(progressCallback); }
private SingleNumberConversation GetDummyConversation() { SingleNumberConversation conversation = new SingleNumberConversation(GetDummyContact()); conversation.AddMessage(GetMessage1()); conversation.AddMessage(GetMessage2()); conversation.AddMessage(GetMessage3()); return conversation; }
public void EmptyMessageAccessTest() { SingleNumberConversation conversation = new SingleNumberConversation(GetDummyContact()); conversation.GetMessage(0); }
public void NegativeMessageIndexTest() { SingleNumberConversation conversation = GetDummyConversation(); conversation.GetMessage(-1); }
public void OutOfRangeMessageAccessTest() { SingleNumberConversation conversation = GetDummyConversation(); conversation.GetMessage(conversation.MessageCount); }