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); }
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); }
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)); } }
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"]); }
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); }
/** * 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)); }
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)); }