public void TestChangeFlags() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test"); Pop3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 1); var simulator = new ImapClientSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); simulator.ExamineFolder("Inbox"); Assert.IsFalse(simulator.SetFlagOnMessage(1, true, @"\Deleted")); }
public void ChangingFlagShouldAffectAllConnections() { var account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend(account.Address, account.Address, "Test", "Test"); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 1); var sim1 = new ImapClientSimulator(); Assert.IsTrue(sim1.ConnectAndLogon(account.Address, "test")); Assert.IsTrue(sim1.SelectFolder("Inbox")); var sim2 = new ImapClientSimulator(); Assert.IsTrue(sim2.ConnectAndLogon(account.Address, "test")); Assert.IsTrue(sim2.SelectFolder("Inbox")); sim1.SetFlagOnMessage(1, true, "\\Deleted"); var flags1 = sim1.GetFlags(1); var flags2 = sim2.GetFlags(1); Assert.IsTrue(flags2.Contains(@"* 1 FETCH (FLAGS (\Deleted))"), flags2); Assert.IsTrue(flags2.Contains(@"* 1 FETCH (FLAGS (\Deleted) UID 1)"), flags2); }
public void TestExpungeNotification() { _settings.IMAPIdleEnabled = true; Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); for (int i = 0; i < 5; i++) SmtpClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test"); Pop3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 5); var imapClientSimulator = new ImapClientSimulator(); var oSimulator2 = new ImapClientSimulator(); imapClientSimulator.ConnectAndLogon(oAccount.Address, "test"); oSimulator2.ConnectAndLogon(oAccount.Address, "test"); imapClientSimulator.SelectFolder("Inbox"); oSimulator2.SelectFolder("Inbox"); for (int i = 1; i <= 5; i++) { Assert.IsTrue(imapClientSimulator.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 = imapClientSimulator.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() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); for (int i = 0; i < 3; i++) SmtpClientSimulator.StaticSend("*****@*****.**", account.Address, "Test", "test"); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 3); var simulator = new ImapClientSimulator(); 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")); }
public void TestExpunge() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test"); Pop3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 1); var simulator = new ImapClientSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); simulator.SelectFolder("Inbox"); Assert.IsTrue(simulator.SetFlagOnMessage(1, true, @"\Deleted")); var secondSimulator = new ImapClientSimulator(); 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(); }