public void TestExpunge() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); Assert.IsTrue(SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test")); POP3Simulator.AssertMessageCount(oAccount.Address, "test", 1); IMAPSimulator simulator = new IMAPSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); simulator.SelectFolder("Inbox"); Assert.IsTrue(simulator.SetFlagOnMessage(1, true, @"\Deleted")); IMAPSimulator secondSimulator = new IMAPSimulator(); secondSimulator.ConnectAndLogon(oAccount.Address, "test"); string result = secondSimulator.ExamineFolder("INBOX"); Assert.IsTrue(result.Contains("1 EXISTS"), result); Assert.IsFalse(secondSimulator.Expunge()); simulator.SelectFolder("INBOX"); Assert.IsTrue(simulator.Expunge()); simulator.Close(); secondSimulator.Close(); }
public void TestChangeFlags() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); Assert.IsTrue(SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test")); POP3Simulator.AssertMessageCount(oAccount.Address, "test", 1); IMAPSimulator simulator = new IMAPSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); simulator.ExamineFolder("Inbox"); Assert.IsFalse(simulator.SetFlagOnMessage(1, true, @"\Deleted")); }
public void TestExpungeNotification() { _settings.IMAPIdleEnabled = true; hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); for (int i = 0; i < 5; i++ ) SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test"); POP3Simulator.AssertMessageCount(oAccount.Address, "test", 5); IMAPSimulator oSimulator1 = new IMAPSimulator(); IMAPSimulator oSimulator2 = new IMAPSimulator(); oSimulator1.ConnectAndLogon(oAccount.Address, "test"); oSimulator2.ConnectAndLogon(oAccount.Address, "test"); oSimulator1.SelectFolder("Inbox"); oSimulator2.SelectFolder("Inbox"); for (int i = 1; i <= 5; i++) { Assert.IsTrue(oSimulator1.SetFlagOnMessage(i, true, @"\Deleted")); } string noopResponse = oSimulator2.NOOP()+ oSimulator2.NOOP(); Assert.IsTrue(noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") && noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") && noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") && noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") && noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)"), noopResponse); bool result = oSimulator1.Expunge(); string expungeResult = oSimulator2.NOOP() + oSimulator2.NOOP(); Assert.IsTrue(expungeResult.Contains("* 1 EXPUNGE\r\n* 1 EXPUNGE\r\n* 1 EXPUNGE\r\n* 1 EXPUNGE\r\n* 1 EXPUNGE"), expungeResult); }
public void TestExpunge() { hMailServer.Account account = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); for (int i = 0; i < 3; i++ ) SMTPClientSimulator.StaticSend("*****@*****.**", account.Address, "Test", "test"); POP3Simulator.AssertMessageCount(account.Address, "test", 3); IMAPSimulator simulator = new IMAPSimulator(); Assert.IsTrue(simulator.ConnectAndLogon(account.Address, "test")); Assert.IsTrue(simulator.SelectFolder("Inbox")); Assert.IsTrue(simulator.SetFlagOnMessage(1, true, @"\Deleted")); Assert.IsTrue(simulator.SetFlagOnMessage(3, true, @"\Deleted")); string result; Assert.IsTrue(simulator.Expunge(out result)); // Messages 1 and 2 should be deleted. 2, because when the first message // is deleted, the index of the message which was originally 3, is now 2. Assert.IsTrue(result.Contains("* 1 EXPUNGE\r\n* 2 EXPUNGE")); }