public void TestAppendOnlyMessageBody() { var seed = _rand.Next(); Logger.InfoFormat("Using seed {0}", seed); var mailManager = new MailManagerMock(); var message1 = mailManager.AddMessage(false); var instanceConfig = GetConfig().Instances.First(); var workItemManagerMock = new WorkItemManagerMock(instanceConfig.WorkItemSettings.ConversationIndexFieldName); ProcessMailbox(mailManager, instanceConfig, workItemManagerMock); Assert.AreEqual(1, workItemManagerMock.Bugs.Count, "Only one bug should exist"); var newBugId = workItemManagerMock.Bugs.First().Key + 1; workItemManagerMock.Bugs.Add(newBugId, new Dictionary<string, string>()); mailManager.Clear(); var appendOnlyMessage = mailManager.AddMessage(false); appendOnlyMessage.PlainTextBody = string.Format("Blah !!!bug #{0}freqmnclkwerqcnew", newBugId); // Message has a conversation index that suggests it's related to a thread with some work item ID x, but it has // a subject that connects it to work item ID x+1 // Should end up applying to the latter work-item (x+1) appendOnlyMessage.ConversationIndex = message1.ConversationIndex + "AAAA"; ProcessMailbox(mailManager, instanceConfig, workItemManagerMock); var expectedValues = new Dictionary<string, string>(); expectedValues["Changed By"] = appendOnlyMessage.SenderName; expectedValues[WorkItemManagerMock.HistoryField] = TextUtils.FixLineBreaks(appendOnlyMessage.GetLastMessageText()); Assert.AreEqual(2, workItemManagerMock.Bugs.Count, "Only one bug should exist"); ValidateBugValues(expectedValues, workItemManagerMock.Bugs[newBugId]); }
public void TestAppendOnlyMessageSubject() { var seed = _rand.Next(); Logger.InfoFormat("Using seed {0}", seed); var mailManager = new MailManagerMock(); var message1 = mailManager.AddMessage(false); var instanceConfig = GetConfig().Instances.First(); var workItemManagerMock = new WorkItemManagerMock(instanceConfig.WorkItemSettings.ConversationIndexFieldName); ProcessMailbox(mailManager, instanceConfig, workItemManagerMock); Assert.AreEqual(1, workItemManagerMock.Bugs.Count, "Only one bug should exist"); var newBugId = workItemManagerMock.Bugs.First().Key + 1; workItemManagerMock.Bugs.Add(newBugId, new Dictionary<string, string>()); mailManager.Clear(); const string comment = "Comment"; var appendOnlySubject = string.Format("RE: Bug #{0}: coverage drop and fluctuation in CO3 [was: RE: CX LATAM coverage drop observed on 12/29-12/30 UTC (TFS# 719845)]", newBugId); var appendOnlyMessage = mailManager.AddMessage(appendOnlySubject, comment); // Message has a conversation index that suggests it's related to a thread with some work item ID x, but it has // a subject that connects it to work item ID x+1 // Should end up applying to the latter work-item (x+1) appendOnlyMessage.ConversationIndex = message1.ConversationIndex + "AAAA"; ProcessMailbox(mailManager, instanceConfig, workItemManagerMock); var expectedValues = new Dictionary<string, string>(); expectedValues["Changed By"] = appendOnlyMessage.SenderName; expectedValues[WorkItemManagerMock.HistoryField] = TextUtils.FixLineBreaks(appendOnlyMessage.GetLastMessageText()); Assert.AreEqual(2, workItemManagerMock.Bugs.Count, "Only one bug should exist"); ValidateBugValues(expectedValues, workItemManagerMock.Bugs[newBugId]); }