public void EmailSourceToXmlExpectedSerializesProperties()
        {
            var expected = new EmailSource
            {
                Host            = "smtp.mydomain.com",
                Port            = 25,
                EnableSsl       = false,
                UserName        = "******",
                Password        = "******",
                Timeout         = 1000,
                TestFromAddress = "*****@*****.**",
                TestToAddress   = "*****@*****.**"
            };

            var xml = expected.ToXml();

            var actual = new EmailSource(xml);

            Assert.AreEqual(expected.ResourceType, actual.ResourceType);
            Assert.AreEqual(expected.Host, actual.Host);
            Assert.AreEqual(expected.Port, actual.Port);
            Assert.AreEqual(expected.EnableSsl, actual.EnableSsl);
            Assert.AreEqual(expected.UserName, actual.UserName);
            Assert.AreEqual(expected.Password, actual.Password);
            Assert.AreEqual(expected.Timeout, actual.Timeout);
            Assert.IsNull(actual.TestFromAddress);
            Assert.IsNull(actual.TestToAddress);
        }
        public void EmailDesignerViewModel_Handles_UpdateResourceMessage_EmailSourceIsUpdated()
        {
            //------------Setup for test--------------------------
            var resourceID  = Guid.NewGuid();
            var emailSource = new EmailSource
            {
                ResourceID   = resourceID,
                ResourceName = "Email1",
                UserName     = "******",
                Password     = "******"
            };

            // var emailSources = CreateEmailSources(2);
            var modelItem = ModelItemUtils.CreateModelItem(new DsfSendEmailActivity
            {
                SelectedEmailSource = emailSource
            });

            var viewModel = CreateViewModel(new List <EmailSource> {
                emailSource
            }, modelItem);

            var updatedEmailSource = new EmailSource
            {
                ResourceID   = resourceID,
                ResourceName = "EmailTest",
                UserName     = "******",
                Password     = "******"
            };

            //var xaml = new StringBuilder
            var resourceModel = new Mock <IContextualResourceModel>();

            resourceModel.Setup(r => r.WorkflowXaml).Returns(new StringBuilder(updatedEmailSource.ToXml().ToString()));

            var message = new UpdateResourceMessage(resourceModel.Object);

            //------------Execute Test---------------------------
            viewModel.Handle(message);

            //------------Assert Results-------------------------
            var selectedSource = viewModel.SelectedEmailSourceModelItemValue;

            Assert.AreEqual(updatedEmailSource.UserName, selectedSource.UserName);
            Assert.AreEqual(updatedEmailSource.Password, selectedSource.Password);
        }
Пример #3
0
        public void EmailSource_Send_ExpectedException()
        {
            var expected = new EmailSource
            {
                Host            = "smtp.mydomain.com",
                Port            = 25,
                EnableSsl       = false,
                UserName        = "******",
                Password        = "******",
                Timeout         = 1000,
                TestFromAddress = "*****@*****.**",
                TestToAddress   = "*****@*****.**"
            };

            var xml = expected.ToXml();

            var mailMessage = new MailMessage();
            var emailSource = new EmailSource(xml);

            emailSource.Send(mailMessage);
        }
        void Verify_TestEmailAccount(bool isTestResultValid, bool hasFromAccount)
        {
            //------------Setup for test--------------------------
            const string ExpectedUri      = AppLocalhost + "/wwwroot/sources/Service/EmailSources/Test";
            const string TestToAddress    = "*****@*****.**";
            const string TestFromAccount  = "*****@*****.**";
            const string TestFromPassword = "******";

            var result = new ValidationResult {
                IsValid = isTestResultValid
            };

            if (!isTestResultValid)
            {
                result.ErrorMessage = "Unable to connect to SMTP server";
            }

            var emailSource = new EmailSource
            {
                ResourceID   = Guid.NewGuid(),
                ResourceName = "EmailTest",
                UserName     = "******",
                Password     = "******",
            };

            var modelItem = CreateModelItem();

            modelItem.SetProperty("SelectedEmailSource", emailSource);
            modelItem.SetProperty("To", TestToAddress);


            var expectedSource = new EmailSource(emailSource.ToXml())
            {
                TestToAddress = TestToAddress
            };

            if (hasFromAccount)
            {
                modelItem.SetProperty("FromAccount", TestFromAccount);
                modelItem.SetProperty("Password", TestFromPassword);
                expectedSource.UserName        = TestFromAccount;
                expectedSource.Password        = TestFromPassword;
                expectedSource.TestFromAddress = TestFromAccount;
            }
            else
            {
                expectedSource.TestFromAddress = emailSource.UserName;
            }

            var expectedPostData = expectedSource.ToString();

            string postData          = null;
            var    webRequestInvoker = new Mock <IWebRequestInvoker>();

            webRequestInvoker.Setup(w => w.ExecuteRequest("POST", ExpectedUri, It.IsAny <string>(), null, It.IsAny <Action <string> >()))
            .Callback((string method, string url, string data, List <Tuple <string, string> > headers, Action <string> asyncCallback) =>
            {
                postData = data;
                asyncCallback(new Dev2JsonSerializer().Serialize(result));
            }).Returns(string.Empty)
            .Verifiable();

            var viewModel = CreateViewModel(new List <EmailSource> {
                emailSource
            }, modelItem);

            viewModel.WebRequestInvoker = webRequestInvoker.Object;

            Assert.IsTrue(viewModel.CanTestEmailAccount);

            //------------Execute Test---------------------------
            viewModel.TestEmailAccountCommand.Execute(null);

            //------------Assert Results-------------------------
            webRequestInvoker.Verify(w => w.ExecuteRequest("POST", ExpectedUri, It.IsAny <string>(), null, It.IsAny <Action <string> >()));
            Assert.IsNotNull(postData);
            Assert.AreEqual(expectedPostData, postData);
            Assert.IsTrue(viewModel.CanTestEmailAccount);
            if (isTestResultValid)
            {
                Assert.IsNull(viewModel.Errors);
            }
            else
            {
                Assert.IsNotNull(viewModel.Errors);
                Assert.AreEqual(result.ErrorMessage, viewModel.Errors[0].Message);
                Assert.IsFalse(viewModel.IsFromAccountFocused);
                viewModel.Errors[0].Do();
                Assert.IsTrue(viewModel.IsFromAccountFocused);
            }
        }