public void TestThreadableSubject() { string result; int depth; result = MessageThreader.GetThreadableSubject("Re: simple subject", out depth); Assert.AreEqual("simple subject", result, "#1a"); Assert.AreEqual(1, depth, "#1b"); result = MessageThreader.GetThreadableSubject("Re: simple subject ", out depth); Assert.AreEqual("simple subject", result, "#2a"); Assert.AreEqual(1, depth, "#2b"); result = MessageThreader.GetThreadableSubject("Re: Re: simple subject ", out depth); Assert.AreEqual("simple subject", result, "#3a"); Assert.AreEqual(2, depth, "#3b"); result = MessageThreader.GetThreadableSubject("Re: Re[4]: simple subject ", out depth); Assert.AreEqual("simple subject", result, "#4a"); Assert.AreEqual(5, depth, "#4b"); result = MessageThreader.GetThreadableSubject("Re: [Mailing-List] Re[4]: simple subject ", out depth); Assert.AreEqual("simple subject", result, "#5a"); Assert.AreEqual(5, depth, "#5b"); }
public void TestArgumentExceptions() { var orderBy = new OrderBy[] { OrderBy.Arrival }; var messagesMissingInfo = new [] { new MessageSummary(0) }; var emptyOrderBy = new OrderBy[0]; int depth; var summary = new MessageSummary(0); summary.UniqueId = UniqueId.MinValue; summary.Envelope = new Envelope(); summary.References = new MessageIdList(); summary.Envelope.MessageId = "*****@*****.**"; summary.Envelope.Subject = "This is the subject"; summary.Envelope.Date = DateTimeOffset.Now; summary.Size = 0; var messages = new MessageSummary[] { summary }; Assert.Throws <ArgumentNullException> (() => MessageThreader.GetThreadableSubject(null, out depth)); Assert.Throws <ArgumentNullException> (() => MessageThreader.Thread((IEnumerable <MessageSummary>)null, ThreadingAlgorithm.References)); Assert.Throws <ArgumentNullException> (() => MessageThreader.Thread((IEnumerable <MessageSummary>)null, ThreadingAlgorithm.References, orderBy)); Assert.Throws <ArgumentException> (() => MessageThreader.Thread(messagesMissingInfo, ThreadingAlgorithm.References)); Assert.Throws <ArgumentNullException> (() => MessageThreader.Thread(messages, ThreadingAlgorithm.References, null)); Assert.Throws <ArgumentException> (() => MessageThreader.Thread(messages, ThreadingAlgorithm.References, emptyOrderBy)); }