コード例 #1
0
        public void NoReceipient()
        {
            var       attachmentFactory = new Mock <IMailAttachmentFactory>();
            var       notifier          = new Mock <IMessageDispatchNotifier>();
            Exception ex = null;

            notifier.Setup(x => x.Notify(It.IsAny <IMessage>(), false, It.IsAny <Exception>()))
            .Callback <IMessage, bool, Exception>((x, y, z) => ex = z);

            var dispatcher = new MailMessageDispatcher(attachmentFactory.Object, notifier.Object);

            var message = new Message();

            dispatcher.Send(message);

            Assert.AreEqual(0, smtpServer.ReceivedEmailCount, "Count differs");
            Assert.IsNotNull(ex);
            Assert.AreEqual("A recipient must be specified.", ex.Message);
        }
コード例 #2
0
        public void Send()
        {
            var attachmentFactory = new Mock <IMailAttachmentFactory>();
            var notifier          = new Mock <IMessageDispatchNotifier>();

            var dispatcher = new MailMessageDispatcher(attachmentFactory.Object, notifier.Object);

            var source = new TextAttachment
            {
                Name    = "Text",
                Content = "Content"
            };

            var attachment = new Attachment(new MemoryStream(Encoding.ASCII.GetBytes("Content")), "Test");

            attachmentFactory.Setup(x => x.CreateAttachement(It.IsAny <IAttachment>())).Returns(attachment);

            var message = new Message
            {
                From          = "*****@*****.**",
                FromName      = "From",
                BounceAddress = "*****@*****.**",
                Subject       = "Subject",
                Text          = "Text",
                Html          = "Html",
            };

            message.ToAddress.Add("*****@*****.**");
            message.Cc.Add("*****@*****.**");
            message.Bcc.Add("*****@*****.**");
            message.Headers["X-Path"] = "xpath";
            message.Attachments.Add(source);

            dispatcher.Send(message);

            Assert.AreEqual(1, smtpServer.ReceivedEmailCount, "Count differs");
            notifier.Verify(x => x.Notify(It.IsAny <IMessage>(), true, null));

            var candidate = smtpServer.ReceivedEmail.First();

            Assert.AreEqual("Subject", candidate.Subject, "Subject differs");
        }