Пример #1
0
        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();
        }
Пример #2
0
        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"));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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"));
        }