Пример #1
0
        public void TestMoveMessageWithGlobalRule()
        {
            Account testAccount = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "Test'*****@*****.**",
                                                                                     "test");

            // First deliver two messages to the inbox.
            SMTPClientSimulator.StaticSend(testAccount.Address, testAccount.Address, "Test", "Test");
            POP3ClientSimulator.AssertMessageCount(testAccount.Address, "test", 1);
            IMAPFolder inboxFolder = testAccount.IMAPFolders[0];

            CustomAssert.AreEqual(1, inboxFolder.CurrentUID);
            CustomAssert.AreEqual(1, inboxFolder.Messages[0].UID);

            SMTPClientSimulator.StaticSend(testAccount.Address, testAccount.Address, "Test", "Test");
            POP3ClientSimulator.AssertMessageCount(testAccount.Address, "test", 2);
            CustomAssert.AreEqual(2, inboxFolder.CurrentUID);
            CustomAssert.AreEqual(2, inboxFolder.Messages[1].UID);

            CreateMoveRule(_application.Rules, "TestFolder");

            // This message will be moved into the test folder.
            SMTPClientSimulator.StaticSend(testAccount.Address, testAccount.Address, "Test", "Test");

            // Wait for the message to arrive.
            TestSetup.AssertFolderExists(testAccount.IMAPFolders, "TestFolder");

            IMAPFolder testFolder = testAccount.IMAPFolders.get_ItemByName("TestFolder");

            TestSetup.AssertFolderMessageCount(testFolder, 1);

            // Since the message is placed in a new folder, it should receive a unique UID.
            CustomAssert.AreEqual(1, testFolder.Messages.Count);
            CustomAssert.AreEqual(1, testFolder.CurrentUID);
            CustomAssert.AreEqual(1, testFolder.Messages[0].UID);
        }
Пример #2
0
        public void TestSaveMessageWithScriptAndMoveMessageWithGlobalRule()
        {
            _settings.Scripting.Enabled = true;

            Account testAccount = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "Test'*****@*****.**",
                                                                                     "test");

            var sim = new IMAPClientSimulator();

            CustomAssert.IsTrue(sim.ConnectAndLogon(testAccount.Address, "test"));

            // First deliver two messages to the inbox.
            SMTPClientSimulator.StaticSend(testAccount.Address, testAccount.Address, "Test", "Test");
            POP3ClientSimulator.AssertMessageCount(testAccount.Address, "test", 1);
            IMAPFolder inboxFolder = testAccount.IMAPFolders[0];

            CustomAssert.AreEqual(1, inboxFolder.CurrentUID);
            CustomAssert.AreEqual(1, inboxFolder.Messages[0].UID);
            CustomAssert.IsTrue(sim.Status("INBOX", "UIDNEXT").Contains("UIDNEXT 2"));

            SMTPClientSimulator.StaticSend(testAccount.Address, testAccount.Address, "Test", "Test");
            POP3ClientSimulator.AssertMessageCount(testAccount.Address, "test", 2);
            CustomAssert.AreEqual(2, inboxFolder.CurrentUID);
            CustomAssert.AreEqual(2, inboxFolder.Messages[1].UID);
            CustomAssert.IsTrue(sim.Status("INBOX", "UIDNEXT").Contains("UIDNEXT 3"));

            CreateMessageModificationRule(_application.Rules);
            CreateMoveRule(_application.Rules, "TestFolder");


            // This message will be moved into the test folder.
            SMTPClientSimulator.StaticSend(testAccount.Address, testAccount.Address, "Test", "Test");

            // Wait for the message to arrive.
            TestSetup.AssertFolderExists(testAccount.IMAPFolders, "TestFolder");
            IMAPFolder testFolder = testAccount.IMAPFolders.get_ItemByName("TestFolder");

            TestSetup.AssertFolderMessageCount(testFolder, 1);

            // Inbox UID should not have changed since nothing has been added to the inbox.
            CustomAssert.IsTrue(sim.Status("INBOX", "UIDNEXT").Contains("UIDNEXT 3"));

            // Since the message is placed in a new folder, it should receive a unique UID.
            string status = sim.Status("TestFolder", "UIDNEXT");

            CustomAssert.IsTrue(status.Contains("UIDNEXT 2"), status);
            CustomAssert.AreEqual(1, testFolder.CurrentUID);
            CustomAssert.AreEqual(1, testFolder.Messages[0].UID);
        }