Example #1
0
        public void TestSerializeEmailMessage()
        {
            TMSEmailMessage messageIn = new TMSEmailMessage();

            messageIn.subject   = TestSubject;
            messageIn.body      = TestBody;
            messageIn.from_name = TestFromName;

            messageIn.addRecipient(TestEmail);

            RestRequest request = new RestRequest();

            request.JsonSerializer = new TMSJsonSerializer();
            String result = request.JsonSerializer.Serialize(messageIn);

            // The links attribute/dictionary shoudl not be in the serialized output
            Assert.IsTrue(result.IndexOf("links") == -1);

            Assert.IsTrue(result.IndexOf("subject") > 0);
            Assert.IsTrue(result.IndexOf(TestSubject) > 0);

            Assert.IsTrue(result.IndexOf("body") > 0);
            Assert.IsTrue(result.IndexOf(TestBody) > 0);

            Assert.IsTrue(result.IndexOf("from_name") > 0);
            Assert.IsTrue(result.IndexOf(TestFromName) > 0);

            Assert.IsTrue(result.IndexOf("email") > 0);
            Assert.IsTrue(result.IndexOf(TestEmail) > 0);
        }
Example #2
0
        public void TestSendEmail()
        {
            TMSEmailMessage messageIn = new TMSEmailMessage();

            messageIn.subject   = TestSubject;
            messageIn.body      = TestBody;
            messageIn.from_name = TestFromName;

            messageIn.addRecipient(TestEmail);

            // Uncomment the below to actually send an email
            TMSEmailMessage messageOut = api.SendEmailMessage(messageIn);

            // We should have a valid self relation
            Assert.IsNotNull(messageOut._links["self"]);

            // Are all of the elements the same as what we passed in?
            Assert.AreEqual(messageIn.subject, messageOut.subject);
            Assert.AreEqual(messageIn.body, messageOut.body);
            Assert.AreEqual(messageIn.from_name, messageOut.from_name);

            // Recipient counts and the actual recipients
            List <EmailRecipient> recipients = api.Get <List <EmailRecipient> >(messageOut._links["recipients"]);

            Assert.AreEqual(messageIn.recipients.First().email, recipients.First().email);
            Assert.AreEqual(1, recipients.Count);
        }
Example #3
0
        public void TestGetEmailClicks()
        {
            List <TMSEmailMessage> messages = api.GetEmailMessages();

            Assert.IsNotNull(messages);
            Assert.IsTrue(messages.Count > 0);

            TMSEmailMessage message = messages.First <TMSEmailMessage>();

            // We know that this specific message has some clicks
            List <EmailRecipient> recipients_clicked = api.Get <List <EmailRecipient> >(message._links["clicked"]);

            Assert.IsNotNull(recipients_clicked);
            if (recipients_clicked.Count > 0)
            {
                List <Click> clicks = api.Get <List <Click> >(recipients_clicked.First()._links["clicks"]);

                Assert.IsNotNull(clicks);
                Assert.IsTrue(clicks.Count > 0);

                Click click = clicks.First <Click>();

                Assert.IsNotNull(click.url);
                Assert.IsTrue(click.url.IndexOf("http://") == 0);

                Assert.IsNotNull(click.event_at);
                Assert.IsTrue(click.event_at > new DateTime(0));
            }
        }
Example #4
0
        public void TestGetEmailMessages()
        {
            List <TMSEmailMessage> messages = api.GetEmailMessages();

            Assert.IsNotNull(messages);
            Assert.IsTrue(messages.Count > 0);

            TMSEmailMessage message = messages.First <TMSEmailMessage>();

            Assert.IsNotNull(message);
            Assert.IsNotNull(message._links);
            Assert.IsNotNull(message._links["self"]);
        }
Example #5
0
        public void TestGetEmailRecipients()
        {
            List <TMSEmailMessage> messages = api.GetEmailMessages();

            Assert.IsNotNull(messages);
            Assert.IsTrue(messages.Count > 0);

            TMSEmailMessage message = messages.First <TMSEmailMessage>();

            Assert.IsNotNull(message);
            Assert.IsNotNull(message._links);
            Assert.IsNotNull(message._links["self"]);

            // recipients aren't available in the list view
            Assert.IsNull(message.recipients);

            List <EmailRecipient> recipients = api.Get <List <EmailRecipient> >(message._links["recipients"]);

            recipients.ForEach(delegate(EmailRecipient r)
            {
                Assert.IsNotNull(r.email);
                Assert.IsNotNull(r.status);
            });
            // recipients should now be there
            Assert.IsNotNull(recipients);
            Assert.IsTrue(recipients.Count > 0);

            // And you should be able to access the data in the recipient
            Assert.IsNotNull(recipients.First().email);
            Assert.IsTrue(recipients.First().email.Length > 1);

            Assert.IsNotNull(recipients.First().created_at);
            Assert.IsTrue(recipients.First().created_at > new DateTime(0));

            Assert.IsNotNull(recipients.First().completed_at);
            if (recipients.First().status == "sent")
            {
                Assert.IsTrue(recipients.First().completed_at > new DateTime(0));
            }
            else
            {
                Assert.AreEqual(new DateTime(0), recipients.First().completed_at);
            }

            Assert.IsNotNull(recipients.First().status);
            Assert.IsTrue(recipients.First().status.Length > 1);
        }
Example #6
0
        /**
         * Send an email message
         */
        public TMSEmailMessage SendEmailMessage(TMSEmailMessage messageIn)
        {
            TMSResource services = GetServices();

            var request = new RestRequest();

            request.Resource = services._links["email_messages"];

            request.Method = Method.POST;

            request.JsonSerializer = new TMSJsonSerializer();
            // anytime you want to send a POST you need to make sure
            // you tell the request object you want to send JSON
            // so that it can serialize correctly
            request.RequestFormat = DataFormat.Json;

            request.AddBody(messageIn);

            return(Execute <TMSEmailMessage>(request));
        }
Example #7
0
        public void TestGetEmailDetails()
        {
            List <TMSEmailMessage> messages = api.GetEmailMessages();

            Assert.IsNotNull(messages);
            Assert.IsTrue(messages.Count > 0);

            TMSEmailMessage message = messages.First <TMSEmailMessage>();

            Assert.IsNotNull(message);
            Assert.IsNotNull(message._links);
            Assert.IsNotNull(message._links["self"]);

            // body isn't available in the list view
            Assert.IsNull(message.body);

            message = api.Get <TMSEmailMessage>(message._links["self"]);

            // body should now be there
            Assert.IsNotNull(message.body);

            // recipients should not appear yet
            Assert.IsNull(message.recipients);

            // recipient counts are available though
            Assert.IsNotNull(message.recipient_counts);
            Assert.IsNotNull(message.recipient_counts["total"]);
            Assert.IsTrue(Convert.ToDecimal(message.recipient_counts["total"]) > 0);

            // open and link tracking fields are here
            Assert.IsNotNull(message.open_tracking_enabled);
            Assert.IsTrue(message.open_tracking_enabled == true || message.open_tracking_enabled == false);

            Assert.IsNotNull(message.click_tracking_enabled);
            Assert.IsTrue(message.click_tracking_enabled == true || message.click_tracking_enabled == false);

            // created_at should be a positive date
            Assert.IsNotNull(message.created_at);
            Assert.IsTrue(message.created_at > new DateTime(0));
        }