コード例 #1
0
        /// <summary>
        ///     Apply all Actions according to the configuration
        /// </summary>
        protected virtual void SetUpActions()
        {
            // it does not work yet...

            /*if (Profile.Stamping.Enable)
             * {
             *  StampPdfAction stamp = new StampPdfAction(Profile.Stamping.StampText, Profile.Stamping.FontName);
             *  JobActions.Add(stamp);
             * }*/

            if (Profile.Scripting.Enabled)
            {
                AddAction(new ScriptAction());
                Logger.Trace("Script-Action added");
            }

            if (Profile.OpenViewer)
            {
                var defaultViewerAction = new DefaultViewerAction(true);
                defaultViewerAction.RecommendPdfArchitect += OnRecommendPdfArchitect;
                AddAction(defaultViewerAction);

                Logger.Trace("Viewer-Action added");
            }

            if (Profile.Printing.Enabled)
            {
                AddAction(new PrintingAction(_ghostScript));
                Logger.Trace("Print-Action added");
            }

            if (Profile.EmailSmtp.Enabled)
            {
                var smtpMailAction = new SmtpMailAction(JobTranslations.EmailSignature);
                smtpMailAction.QueryRetypeSmtpPassword += OnRetypeSmtpPassword;
                AddAction(smtpMailAction);
                Logger.Trace("SMTP-Mail-Action added");
            }

            if (Profile.EmailClient.Enabled)
            {
                var eMailClientAction = new EMailClientAction(JobTranslations.EmailSignature);
                AddAction(eMailClientAction);
                Logger.Trace("EMail-Client-Action added");
            }

            if (Profile.Ftp.Enabled)
            {
                var ftpAction = new FtpAction();
                AddAction(ftpAction);
                Logger.Trace("Ftp-Action added");
            }

            /*if (Profile.AttachMe.Enable)
             * {
             *  var attachMeAction = new AttachMeAction();
             *  AddAction(attachMeAction);
             *  Logger.Trace("Attach.Me added");
             * }*/
        }
コード例 #2
0
        public void CheckEmailClientInstalled_ClientCannotBeCreated_ReturnsFalse()
        {
            _emailClientFactory.CreateEmailClient().Returns(x => null);
            var action = new EMailClientAction(_emailClientFactory);

            Assert.IsFalse(action.CheckEmailClientInstalled());
        }
コード例 #3
0
        public void EmailClientAction_WithSimpleJob_EmailIsProcessedByClient()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            action.ProcessJob(_job);

            Assert.IsNotEmpty(_mockMailClient.Mails);
        }
コード例 #4
0
        public void IsEnabled_WhenNotEnabled_ReturnsFalse()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.EmailClientSettings.Enabled = false;

            Assert.IsFalse(action.IsEnabled(_profile));
        }
コード例 #5
0
        public void EmailClientAction_CouldNotStartClient_ReturnsActionresultWithId100()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _mockMailClient.WillFail = true;

            var result = action.ProcessJob(_job);

            Assert.AreEqual(11100, result[0]);
        }
コード例 #6
0
        public void EmailClientAction_NoClientInstalled_ReturnsActionresultWithId101()
        {
            _emailClientFactory = MockRepository.GenerateStub <IEmailClientFactory>();
            _emailClientFactory.Stub(x => x.CreateEmailClient()).Return(null);
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            var result = action.ProcessJob(_job);

            Assert.AreEqual(11101, result[0]);
        }
コード例 #7
0
        public void EmailClientAction_AttachesFiles()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.EmailClientSettings.Subject = "my subject";

            action.ProcessJob(_job);

            Assert.AreEqual(1, _mockMailClient.Mails[0].Attachments.Count);
        }
コード例 #8
0
        public void EmailClientAction_WhenExceptionIsThrown_ReturnsActionresultWithId999()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _mockMailClient.ExceptionThrown = new Exception();

            var result = action.ProcessJob(_job);

            Assert.AreEqual(ErrorCode.MailClient_GenericError, result[0]);
        }
コード例 #9
0
        public void EmailClientAction_WhenExceptionIsThrown_ReturnsActionresultWithId999()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _mockMailClient.ExceptionThrown = new Exception();

            var result = action.ProcessJob(_job);

            Assert.AreEqual(11999, result[0]);
        }
コード例 #10
0
        public void EmailClientAction_WithoutSignature_MailBodyDoesNotContainSignature()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.AddSignature = false;

            action.ProcessJob(_job);

            Assert.IsFalse(_mockMailClient.Mails[0].Body.Contains(SignatureText));
        }
コード例 #11
0
        public void EmailClientAction_WithSignature_MailBodyContainsSignature()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.AddSignature = true;

            action.ProcessJob(_job);

            Assert.IsTrue(_mockMailClient.Mails[0].Body.Contains(SignatureText));
        }
コード例 #12
0
        public void EmailClientAction_WithSubject_MailContainsSubject()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.Subject = "my subject";

            action.ProcessJob(_job);

            Assert.AreEqual(_mockMailClient.Mails[0].Subject, _profile.EmailClient.Subject);
        }
コード例 #13
0
        public void EmailClientAction_NoClientInstalled_ReturnsActionresultWithId101()
        {
            _emailClientFactory = Substitute.For <IEmailClientFactory>();
            _emailClientFactory.CreateEmailClient().Returns(x => null);
            var action = new EMailClientAction(_emailClientFactory);

            var result = action.ProcessJob(_job);

            Assert.AreEqual(ErrorCode.MailClient_NoCompatibleEmailClientInstalled, result[0]);
        }
コード例 #14
0
        public void EmailClientAction_WithBody_MailContainsBody()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.Content = "some content \r\nwith line breaks";

            action.ProcessJob(_job);

            Assert.AreEqual(_mockMailClient.Mails[0].Body, _profile.EmailClient.Content);
        }
コード例 #15
0
        public void EmailClientAction_CouldNotStartClient_ReturnsActionresultWithId100()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _mockMailClient.WillFail = true;

            var result = action.ProcessJob(_job);

            Assert.AreEqual(ErrorCode.MailClient_GenericError, result[0]);
        }
コード例 #16
0
        public void EmailClientAction_BodyWithToken_MailContainsReplacedBody()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.Content = "some content \r\nwith line breaks <foo>";
            _tokenReplacer.AddStringToken("foo", "bar");

            action.ProcessJob(_job);

            Assert.AreEqual(_mockMailClient.Mails[0].Body, "some content \r\nwith line breaks bar");
        }
コード例 #17
0
        public void EmailClientAction_SubjectWithToken_MailContainsReplacedSubject()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.Subject = "my subject <foo>";
            _tokenReplacer.AddStringToken("foo", "bar");

            action.ProcessJob(_job);

            Assert.AreEqual(_mockMailClient.Mails[0].Subject, "my subject bar");
        }
コード例 #18
0
        public void EmailClientAction_WithEmptyRecipients_OnlyContainsValidInMail()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.Recipients = "a@local; ; b@local";

            action.ProcessJob(_job);

            var mail = _mockMailClient.Mails[0];

            Assert.AreEqual(new[] { "a@local", "b@local" }.ToList(), mail.To);
        }
コード例 #19
0
        public void EmailClientAction_WithMultipleRecipientsSeperatedBySemicolons_AllRecipientsListedInMail()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.EmailClientSettings.Recipients = "a@local; b@local; c@local";

            action.ProcessJob(_job);

            var mail = _mockMailClient.Mails[0];

            Assert.AreEqual(new[] { "a@local", "b@local", "c@local" }, mail.Recipients.Select(r => r.Address));
        }
コード例 #20
0
        public void EmailClientAction_WithMultipleRecipientsSeperatedByCommas_AllRecipientsListedInMail()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.EmailClientSettings.Recipients = "a@local, b@local, c@local";

            action.ProcessJob(_job);

            var mail = _mockMailClient.Mails[0];

            Assert.AreEqual(new[] { "a@local", "b@local", "c@local" }.ToList(), mail.To);
        }
コード例 #21
0
        public void EmailClientAction_WithMultipleRecipientsSeperatedBySemicolons_AllRecipientsListedInMail()
        {
            var action = new EMailClientAction(_emailClientFactory, SignatureText);

            _profile.EmailClient.Recipients = "a@local; b@local; c@local";

            action.ProcessJob(_job);

            var mail = _mockMailClient.Mails[0];

            Assert.AreEqual(new[] { "a@local", "b@local", "c@local" }.ToList(), mail.To);
        }
コード例 #22
0
        public void EmailClientAction_WithEmptyRecipients_OnlyContainsValidInMail()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.EmailClientSettings.Recipients = "a@local; ; b@local";

            action.ProcessJob(_job);

            var mail = _mockMailClient.Mails[0];

            Assert.AreEqual(new[] { "a@local", "b@local" }.ToList(), mail.Recipients.Select(r => r.Address));
        }
コード例 #23
0
        public void EmailClientAction_DropboxEnabledWithoutToken_AttachesFiles()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.DropboxSettings.Enabled         = true;
            _profile.DropboxSettings.CreateShareLink = true;

            _profile.EmailClientSettings.Subject = "my subject";

            action.ProcessJob(_job);

            Assert.AreEqual(1, _mockMailClient.Mails[0].Attachments.Count);
        }
コード例 #24
0
        public void EmailClientAction_DropboxShareLinks_DoesNotAttachFiles()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.DropboxSettings.Enabled         = true;
            _profile.DropboxSettings.CreateShareLink = true;

            _profile.EmailClientSettings.Subject = "my subject";
            _profile.EmailClientSettings.Content = "<DropboxFullLinks>";

            action.ProcessJob(_job);

            Assert.AreEqual(0, _mockMailClient.Mails[0].Attachments.Count);
        }
コード例 #25
0
        public void EmailClientAction_WithMultipleRecipientsInCcAndBcc_AllRecipientsListedInMail()
        {
            var action = new EMailClientAction(_emailClientFactory);

            _profile.EmailClientSettings.Recipients    = "a@local;";
            _profile.EmailClientSettings.RecipientsCc  = "b@local";
            _profile.EmailClientSettings.RecipientsBcc = ";c@local";

            action.ProcessJob(_job);

            var mail = _mockMailClient.Mails[0];
            var formattedRecipients = mail.Recipients.Select(r => r.Type + ":" + r.Address);

            Assert.AreEqual(new[] { "To:a@local", "Cc:b@local", "Bcc:c@local" }, formattedRecipients);
        }
コード例 #26
0
        public void CheckEmailClientInstalled_ClientCanBeCreated_ReturnsTrue()
        {
            var action = new EMailClientAction(_emailClientFactory);

            Assert.IsTrue(action.CheckEmailClientInstalled());
        }