Exemple #1
0
        public void Save30AboveMaxTest(string body, int count, int start, int end,int attach)
        {
            const string domain = "@example.com";
            const string from = "user1" + domain;

            for (int i = 0; i < 30; i++) {
                var m = new TsMail(from, "1ban" + domain, "DMY");
                m.Mail.AddHeader("subject", string.Format("TEST_{0}", i));//試験的に件名を挿入する

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            //事後のテストのため一度クリアする
            _tsMailSave.Clear();

            //リクエスト
            var mail = new TsMail(from, "1ban-ctl" + domain, body);
            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(),count); //返されるメールはcount通

            var subject = string.Format("result for get [{0}-{1} MIME/multipart] (1ban ML)", start, end);
            Assert.AreEqual(_tsMailSave.GetMail(count-1).GetHeader("subject"), subject);

            //添付されているメールの通数確認
            var ar = GetAttach(_tsMailSave.GetMail(count-1));
            Assert.AreEqual(ar.Count, attach);
        }
Exemple #2
0
        public void Summary2Test(string body, string response)
        {
            const string domain = "@example.com";
            const string from   = "user1" + domain;

            for (var i = 0; i < 30; i++)
            {
                var m = new TsMail(from, "1ban" + domain, "DMY");
                m.Mail.AddHeader("subject", string.Format("TEST_{0}", i));//試験的に件名を挿入する

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            //事後のテストのため一度クリアする
            _tsMailSave.Clear();


            var mail = new TsMail(from, "1ban-ctl" + domain, body);

            _ml.Job(mail.MlEnvelope, mail.Mail);

            var s = Encoding.ASCII.GetString(_tsMailSave.GetMail(0).GetBody());

            Assert.AreEqual(s, response);
        }
Exemple #3
0
        public void Save30Test(int count)
        {
            const string domain = "@example.com";
            const string from = "user1" + domain;

            for (var i = 0; i < count; i++) {
                var m = new TsMail(from, "1ban" + domain, "DMY");

                var subject = string.Format("TEST_{0}", i);//試験的に件名を挿入する
                m.Mail.AddHeader("subject", subject);

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            Assert.AreEqual(_tsMailSave.Count(), count * 3);

            for (var i = 0; i < _tsMailSave.Count(); i++) {
                var mail = _tsMailSave.GetMail(i);

                Assert.AreEqual(mail.GetHeader("from"), from);
                Assert.AreEqual(mail.GetHeader("to"),"1ban"+domain);
                Assert.AreEqual(mail.GetHeader("subject"),string.Format("[1ban:{0:D5}] TEST_{1}",i/3+1,i/3));
                Assert.AreEqual(mail.GetHeader("Reply-To"), "\"1ban\"<*****@*****.**>");
                Assert.AreEqual(mail.GetHeader("List-Id"), "1ban.example.com");
                Assert.AreEqual(mail.GetHeader("List-Post"), "<mailto:[email protected]>");
                Assert.AreEqual(mail.GetHeader("List-Owner"), "<mailto:[email protected]>");
                Assert.AreEqual(mail.GetHeader("List-Help"), "<mailto:[email protected]?body=help>");
                Assert.AreEqual(mail.GetHeader("List-Unsubscribe"), "<mailto:[email protected]?body=unsubscribe>");

            }
        }
Exemple #4
0
        public void Summary1Test(string body, int count, string subject)
        {
            const string domain = "@example.com";
            const string from   = "user1" + domain;

            for (var i = 0; i < 30; i++)
            {
                var m = new TsMail(from, "1ban" + domain, "DMY");
                m.Mail.AddHeader("subject", string.Format("TEST_{0}", i));//試験的に件名を挿入する

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            //事後のテストのため一度クリアする
            _tsMailSave.Clear();


            var mail = new TsMail(from, "1ban-ctl" + domain, body);

            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(), count); //返されるエラーメールは1通
            Assert.AreEqual(_tsMailSave.GetMail(count - 1).GetHeader("subject"), subject);
            Assert.AreEqual(_tsMailSave.GetFrom(count - 1).ToString(), "1ban-admin" + domain);
        }
Exemple #5
0
        [TestCase(10)]//10通の送信
        //[TestCase(10000)]//10000通の送信(時間がかかるので、デバッグ時のみ使用する)
        public void Save30Test(int count)
        {
            const string domain = "@example.com";
            const string from   = "user1" + domain;

            for (var i = 0; i < count; i++)
            {
                var m = new TsMail(from, "1ban" + domain, "DMY");

                var subject = string.Format("TEST_{0}", i);//試験的に件名を挿入する
                m.Mail.AddHeader("subject", subject);

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            Assert.AreEqual(_tsMailSave.Count(), count * 3);

            for (var i = 0; i < _tsMailSave.Count(); i++)
            {
                var mail = _tsMailSave.GetMail(i);

                Assert.AreEqual(mail.GetHeader("from"), from);
                Assert.AreEqual(mail.GetHeader("to"), "1ban" + domain);
                Assert.AreEqual(mail.GetHeader("subject"), string.Format("[1ban:{0:D5}] TEST_{1}", i / 3 + 1, i / 3));
                Assert.AreEqual(mail.GetHeader("Reply-To"), "\"1ban\"<*****@*****.**>");
                Assert.AreEqual(mail.GetHeader("List-Id"), "1ban.example.com");
                Assert.AreEqual(mail.GetHeader("List-Post"), "<mailto:[email protected]>");
                Assert.AreEqual(mail.GetHeader("List-Owner"), "<mailto:[email protected]>");
                Assert.AreEqual(mail.GetHeader("List-Help"), "<mailto:[email protected]?body=help>");
                Assert.AreEqual(mail.GetHeader("List-Unsubscribe"), "<mailto:[email protected]?body=unsubscribe>");
            }
        }
Exemple #6
0
        public void Test(string sender, string to, string from, string recvers)
        {
            //ドメインを追加
            const string domain = "@example.com";

            sender = sender + domain;
            to     = to + domain;
            from   = from + domain;
            //配信先
            var recvList = new List <string>();

            foreach (var r in recvers.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
            {
                recvList.Add(r + domain);
            }

            var mail = new TsMail(sender, to, "dmy");

            _ml.Job(mail.MlEnvelope, mail.Mail);

            //user1とuser2に届く
            Assert.AreEqual(_tsMailSave.Count(), recvList.Count());
            for (int i = 0; i < recvList.Count(); i++)
            {
                Assert.AreEqual(recvList[i], _tsMailSave.GetTo(i).ToString());
                Assert.AreEqual(from, _tsMailSave.GetFrom(i).ToString());
            }
        }
Exemple #7
0
        public void Save30UnderMaxTest(string body, int start, int end, int attach)
        {
            const string domain = "@example.com";
            const string from   = "user1" + domain;

            for (int i = 0; i < 30; i++)
            {
                var m = new TsMail(from, "1ban" + domain, "DMY");
                m.Mail.AddHeader("subject", string.Format("TEST_{0}", i));//試験的に件名を挿入する

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            //事後のテストのため一度クリアする
            _tsMailSave.Clear();

            //リクエスト
            var mail = new TsMail(from, "1ban-ctl" + domain, body);

            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(), 1); //返されるメールは1通
            var subject = string.Format("result for get [{0}-{1} MIME/multipart] (1ban ML)", start, end);

            Assert.AreEqual(_tsMailSave.GetMail(0).GetHeader("subject"), subject);
            Assert.AreEqual(_tsMailSave.GetFrom(0).ToString(), "1ban-admin" + domain);

            //添付されているメールの通数確認
            var ar = GetAttach(_tsMailSave.GetMail(0));

            Assert.AreEqual(ar.Count, attach);
        }
Exemple #8
0
        public void AdminTest(string from)
        {
            var mail = new TsMail(from, "*****@*****.**","DMY");
            _ml.Job(mail.MlEnvelope, mail.Mail);

            //管理者全員にメールが配信される
            Assert.AreEqual(_tsMailSave.Count(), 2);
            //送信者の確認
            Assert.AreEqual(_tsMailSave.GetMail(0).GetHeader("from"),from);
        }
Exemple #9
0
        public void AdminTest(string from)
        {
            var mail = new TsMail(from, "*****@*****.**", "DMY");

            _ml.Job(mail.MlEnvelope, mail.Mail);

            //管理者全員にメールが配信される
            Assert.AreEqual(_tsMailSave.Count(), 2);
            //送信者の確認
            Assert.AreEqual(_tsMailSave.GetMail(0).GetHeader("from"), from);
        }
Exemple #10
0
        public void Summary0Test(string body, string subject)
        {
            //    ドメインを追加
            const string domain = "@example.com";
            const string from = "user1" + domain;

            var mail = new TsMail(from, "1ban-ctl" + domain, body);
            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(), 1); //返されるエラーメールは1通
            Assert.AreEqual(_tsMailSave.GetMail(0).GetHeader("subject"), subject);
            Assert.AreEqual(_tsMailSave.GetFrom(0).ToString(), "1ban-admin" + domain);
        }
Exemple #11
0
        public void Save0Test(string body, string subject)
        {
            //    ドメインを追加
            const string domain = "@example.com";
            const string from   = "user1" + domain;

            var mail = new TsMail(from, "1ban-ctl" + domain, body);

            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(), 1); //返されるエラーメールは1通
            Assert.AreEqual(_tsMailSave.GetMail(0).GetHeader("subject"), subject);
            Assert.AreEqual(_tsMailSave.GetFrom(0).ToString(), "1ban-admin" + domain);
        }
Exemple #12
0
        public void HelpTest(string user,string subject)
        {
            //    ドメインを追加
            const string domain = "@example.com";
            string from = user + domain;

            var mail = new TsMail(from, "1ban-ctl" + domain, "help");
            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(), 1);
            var m = _tsMailSave.GetMail(0);
            //送信者
            Assert.AreEqual(m.GetHeader("from"), "1ban-admin" + domain);
            //件名
            Assert.AreEqual(m.GetHeader("subject"),subject);
        }
Exemple #13
0
        [TestCase("xxxx", "You are not member (1ban ML)")] //メンバ外からのリクエスト(失敗)
        public void HelpTest(string user, string subject)
        {
            //    ドメインを追加
            const string domain = "@example.com";
            string       from   = user + domain;

            var mail = new TsMail(from, "1ban-ctl" + domain, "help");

            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(), 1);
            var m = _tsMailSave.GetMail(0);

            //送信者
            Assert.AreEqual(m.GetHeader("from"), "1ban-admin" + domain);
            //件名
            Assert.AreEqual(m.GetHeader("subject"), subject);
        }
Exemple #14
0
        public void TestTest(string from, string to, string recvers)
        {
            var recvList = recvers.Split(new char[] { ',' }, StringSplitOptions.None);
            var mail     = new TsMail(from, to, "dmy");

            _ml.Job(mail.MlEnvelope, mail.Mail);



            //user1とuser2に届く

            //***************************************************
            //返されるはuser1,user2,admin2への3通
            //ヘッダは、すべて送信者->POST
            //エンベロープは送信者->user1,user2
            //***************************************************

            /*Assert.AreEqual(3, init.MailSave.Count());
             * int index = 0;
             * var fromStr = user1Str;//送信者
             * var toStr = mlPostStr;//post
             * var from = user1;//送信者
             * var to = user1;//user1
             * var subject = string.Format("[{0}]", init._mlName);//件名
             * Comfirm(index, fromStr, toStr, from, to, subject);
             *
             * index = 1;
             * to = user2;//user2
             * Comfirm(index, fromStr, toStr, from
             *                                 to, subject);
             *
             * index = 2;
             * to = admin2;//admin2
             * Comfirm(index, fromStr, toStr, from, to, subject);
             */
        }
Exemple #15
0
        public void Summary1Test(string body, int count, string subject)
        {
            const string domain = "@example.com";
            const string from = "user1" + domain;

            for (var i = 0; i < 30; i++) {
                var m = new TsMail(from, "1ban" + domain, "DMY");
                m.Mail.AddHeader("subject", string.Format("TEST_{0}", i));//試験的に件名を挿入する

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            //事後のテストのため一度クリアする
            _tsMailSave.Clear();

            var mail = new TsMail(from,"1ban-ctl"+domain,body);
            _ml.Job(mail.MlEnvelope, mail.Mail);

            Assert.AreEqual(_tsMailSave.Count(), count); //返されるエラーメールは1通
            Assert.AreEqual(_tsMailSave.GetMail(count - 1).GetHeader("subject"), subject);
            Assert.AreEqual(_tsMailSave.GetFrom(count - 1).ToString(), "1ban-admin" + domain);
        }
Exemple #16
0
        public void Summary2Test(string body, string response)
        {
            const string domain = "@example.com";
            const string from = "user1" + domain;

            for (var i = 0; i < 30; i++) {
                var m = new TsMail(from, "1ban" + domain, "DMY");
                m.Mail.AddHeader("subject", string.Format("TEST_{0}", i));//試験的に件名を挿入する

                _ml.Job(m.MlEnvelope, m.Mail);
            }
            //この時点で、user1,user2,adin2のそれぞれ30通が送信されているため_tsMailSave.Count()は90となる
            //事後のテストのため一度クリアする
            _tsMailSave.Clear();

            var mail = new TsMail(from, "1ban-ctl" + domain, body);
            _ml.Job(mail.MlEnvelope, mail.Mail);

            var s = Encoding.ASCII.GetString(_tsMailSave.GetMail(0).GetBody());
            Assert.AreEqual(s, response);
        }
Exemple #17
0
        public void Test(string sender, string to, string from, string recvers)
        {
            //ドメインを追加
            const string domain = "@example.com";
            sender = sender + domain;
            to = to + domain;
            from = from + domain;
            //配信先
            var recvList = new List<string>();
            foreach (var r in recvers.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) {
                recvList.Add(r + domain);
            }

            var mail = new TsMail(sender,to, "dmy");
            _ml.Job(mail.MlEnvelope, mail.Mail);

            //user1とuser2に届く
            Assert.AreEqual(_tsMailSave.Count(), recvList.Count());
            for(int i=0;i<recvList.Count();i++){
                Assert.AreEqual(recvList[i], _tsMailSave.GetTo(i).ToString());
                Assert.AreEqual(from, _tsMailSave.GetFrom(i).ToString());
            }
        }
Exemple #18
0
        public void TestTest(string from,string to,string recvers)
        {
            var recvList = recvers.Split(new char[]{','},StringSplitOptions.None);
            var mail = new TsMail(from,to, "dmy");
            _ml.Job(mail.MlEnvelope, mail.Mail);

            //user1とuser2に届く

            //***************************************************
            //返されるはuser1,user2,admin2への3通
            //ヘッダは、すべて送信者->POST
            //エンベロープは送信者->user1,user2
            //***************************************************
            /*Assert.AreEqual(3, init.MailSave.Count());
            int index = 0;
            var fromStr = user1Str;//送信者
            var toStr = mlPostStr;//post
            var from = user1;//送信者
            var to = user1;//user1
            var subject = string.Format("[{0}]", init._mlName);//件名
            Comfirm(index, fromStr, toStr, from, to, subject);

            index = 1;
            to = user2;//user2
            Comfirm(index, fromStr, toStr, from
                                               to, subject);

            index = 2;
            to = admin2;//admin2
            Comfirm(index, fromStr, toStr, from, to, subject);
            */
        }