public void TestRETR() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestBody1"); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 1); SmtpClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestBody2"); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 2); SmtpClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestBody3"); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 3); var sim = new Pop3ClientSimulator(); sim.ConnectAndLogon(account.Address, "test"); string result = sim.RETR(1); Assert.IsTrue(result.Contains("TestBody1"), result); result = sim.RETR(2); Assert.IsTrue(result.Contains("TestBody2"), result); result = sim.RETR(3); Assert.IsTrue(result.Contains("TestBody3"), result); Assert.IsFalse(result.Contains(".\r\n.")); }
public void TestAttachmentEncoding() { string[] testFiles = GetTestFiles(); SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); foreach (string testFile in testFiles) { Trace.WriteLine(testFile); string fileHash = GetFileHash(testFile); var mail = new MailMessage(); mail.From = new MailAddress("*****@*****.**"); mail.To.Add("*****@*****.**"); mail.Subject = "Test"; mail.Attachments.Add(new Attachment(testFile)); SendMessage(mail); Pop3ClientSimulator.AssertMessageCount("*****@*****.**", "test", 1); var sim = new Pop3ClientSimulator(); sim.ConnectAndLogon("*****@*****.**", "test"); string fileContent = sim.RETR(1); sim.DELE(1); sim.QUIT(); var message = new Message(); try { File.WriteAllText(message.Filename, fileContent); message.RefreshContent(); message.Attachments[0].SaveAs(message.Filename); string fileHashAfter = GetFileHash(message.Filename); Assert.AreEqual(fileHash, fileHashAfter); } finally { File.Delete(message.Filename); } } }
public void TestReinitialize() { string @messageText = "From: [email protected]\r\n" + "\r\n" + "WhatTest\r\n"; Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend(account.Address, account.Address, "First message", "Test message"); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 1); // Create another message on disk and import it. string domainPath = Path.Combine(_application.Settings.Directories.DataDirectory, "test.com"); string accountPath = Path.Combine(domainPath, "test"); Directory.CreateDirectory(accountPath); string fileName = Path.Combine(accountPath, "something.eml"); File.WriteAllText(fileName, messageText); Assert.IsTrue(_application.Utilities.ImportMessageFromFile(fileName, account.ID)); // Since the cache isn't refreshed, the message has not yet appeared. Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 1); // Reinitialize the server. Should, among other things, clear the cache. _application.Reinitialize(); // Now the message should have appeared. Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 2); var sim = new Pop3ClientSimulator(); sim.ConnectAndLogon(account.Address, "test"); messageText = sim.RETR(2); sim.QUIT(); Assert.IsTrue(messageText.Contains("WhatTest"), messageText); }