Skip to content

Commit

Permalink
Add tests to verify server edits and queries.
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Theken committed Oct 25, 2017
1 parent 6e7ecd5 commit 2a48e1a
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 4 deletions.
11 changes: 9 additions & 2 deletions src/Postmark.Tests/AdminClientServersTests.cs
Expand Up @@ -24,6 +24,7 @@ public class AdminClientServersTests : ClientBaseFixture, IDisposable
private string _color;
private bool? _rawEmailEnabled;
private string _bounceHookUrl;
private string _deliveryHookUrl;

protected override void Setup()
{
Expand All @@ -39,6 +40,7 @@ protected override void Setup()
_bounceHookUrl = "http://www.example.com/bounce/" + id;
_openHookUrl = "http://www.example.com/opened/" + id;
_clickHookUrl = "http://www.example.com/clicked/" + id;
_deliveryHookUrl = "http://www.example.com/delivery/" + id;
_postFirstOpenOpenOnly = true;
_trackOpens = true;
_inboundSpamThreshold = 30;
Expand Down Expand Up @@ -95,7 +97,7 @@ public async void AdminClient_CanEditServer()
!newServer.RawEmailEnabled, !newServer.SmtpApiActivated,
_inboundHookUrl + updatedAffix, _bounceHookUrl + updatedAffix,
_openHookUrl + updatedAffix, !newServer.PostFirstOpenOnly,
!newServer.TrackOpens, null, 5);
!newServer.TrackOpens, null, 5, null, _clickHookUrl, _deliveryHookUrl);

var retrievedServer = await _adminClient.GetServerAsync(newServer.ID);

Expand All @@ -106,6 +108,8 @@ public async void AdminClient_CanEditServer()
Assert.Equal(!_smtpActivated, retrievedServer.SmtpApiActivated);
Assert.Equal(_inboundHookUrl + updatedAffix, retrievedServer.InboundHookUrl);
Assert.Equal(_bounceHookUrl + updatedAffix, retrievedServer.BounceHookUrl);
Assert.Equal(_clickHookUrl + updatedAffix, retrievedServer.ClickHookUrl);
Assert.Equal(_deliveryHookUrl + updatedAffix, retrievedServer.DeliveryHookUrl);
Assert.Equal(_openHookUrl + updatedAffix, retrievedServer.OpenHookUrl);
Assert.Equal(!_postFirstOpenOpenOnly, retrievedServer.PostFirstOpenOnly);
Assert.Equal(!_trackOpens, retrievedServer.TrackOpens);
Expand All @@ -119,7 +123,7 @@ public async void AdminClient_CanCreateServer()
{
var newServer = await _adminClient.CreateServerAsync(_name, _color, _rawEmailEnabled, _smtpActivated,
_inboundHookUrl, _bounceHookUrl, _openHookUrl, _postFirstOpenOpenOnly, _trackOpens,
null, _inboundSpamThreshold);
null, _inboundSpamThreshold, null, _clickHookUrl, _deliveryHookUrl);

var retrievedServer = await _adminClient.GetServerAsync(newServer.ID);

Expand All @@ -130,11 +134,14 @@ public async void AdminClient_CanCreateServer()
Assert.Equal(_inboundHookUrl, retrievedServer.InboundHookUrl);
Assert.Equal(_bounceHookUrl, retrievedServer.BounceHookUrl);
Assert.Equal(_openHookUrl, retrievedServer.OpenHookUrl);
Assert.Equal(_deliveryHookUrl, retrievedServer.DeliveryHookUrl);
Assert.Equal(_clickHookUrl, retrievedServer.ClickHookUrl);
Assert.Equal(_postFirstOpenOpenOnly, retrievedServer.PostFirstOpenOnly);
Assert.Equal(_trackOpens, retrievedServer.TrackOpens);
Assert.True(String.IsNullOrEmpty(retrievedServer.InboundDomain));
Assert.Equal(_inboundSpamThreshold, retrievedServer.InboundSpamThreshold);


}

[Fact]
Expand Down
36 changes: 36 additions & 0 deletions src/Postmark.Tests/ClientMessageClickQueryTests.cs
@@ -0,0 +1,36 @@
using Xunit;
using System;
using System.Threading.Tasks;
using System.Linq;
using PostmarkDotNet;

namespace Postmark.Tests
{
public class ClientMessageClickQueryTests : ClientBaseFixture
{
protected override void Setup()
{
_client = new PostmarkClient(READ_LINK_TRACKING_TEST_SERVER_TOKEN, requestTimeoutInSeconds: 60);
}

[Fact]
public async void Client_CanGetClickStatsForMessages()
{
var messagestats = await _client.GetClickEventsForMessagesAsync();
Assert.True(messagestats.TotalCount > 0);
Assert.True(messagestats.Clicks.Count() > 0);
}

[Fact]
public async void Client_CanGetClickStatsForSingleMessage()
{
var statsbatch = await _client.GetClickEventsForMessagesAsync(0, 10);
var messagestats = await _client.GetClickEventsForMessageAsync
(statsbatch.Clicks.First().MessageID);

Assert.True(messagestats.Clicks.Any());
Assert.True(messagestats.TotalCount > 0);
Assert.NotNull(messagestats.Clicks.First().MessageID);
}
}
}
11 changes: 9 additions & 2 deletions src/Postmark.Tests/ClientServerInformationTests.cs
Expand Up @@ -16,6 +16,8 @@ public class ClientServerInformationTests : ClientBaseFixture
private string _inboundHookUrl;
private string _bounceHookUrl;
private string _openHookUrl;
private string _clickHookUrl;
private string _deliveryHookUrl;

protected override void Setup()
{
Expand All @@ -29,6 +31,8 @@ protected override void Setup()
_inboundHookUrl = "http://www.example.com/inbound/" + id;
_bounceHookUrl = "http://www.example.com/bounce/" + id;
_openHookUrl = "http://www.example.com/opened/" + id;
_clickHookUrl = "http://www.example.com/click/" + id;
_deliveryHookUrl = "http://www.example.com/delivery/" + id;
//_inboundDomain = "inbound-" + id + ".exmaple.com";
}

Expand Down Expand Up @@ -68,7 +72,8 @@ public async void Client_CanGetEditAServerInformation()
!existingServer.RawEmailEnabled, !existingServer.SmtpApiActivated,
_inboundHookUrl + updatedAffix, _bounceHookUrl + updatedAffix,
_openHookUrl + updatedAffix, !existingServer.PostFirstOpenOnly,
!existingServer.TrackOpens, null, 10, LinkTrackingOptions.HtmlOnly);
!existingServer.TrackOpens, null, 10, LinkTrackingOptions.HtmlOnly,
_clickHookUrl + updatedAffix, _deliveryHookUrl + updatedAffix);

//go get a fresh copy from the API.
var retrievedServer = await _client.GetServerAsync();
Expand All @@ -81,7 +86,7 @@ public async void Client_CanGetEditAServerInformation()
existingServer.OpenHookUrl, existingServer.PostFirstOpenOnly,
existingServer.TrackOpens, null,
existingServer.InboundSpamThreshold,
LinkTrackingOptions.None);
LinkTrackingOptions.None, existingServer.ClickHookUrl, existingServer.DeliveryHookUrl);

Assert.Equal(_name + updatedAffix, retrievedServer.Name);
Assert.Equal(ServerColors.Purple, retrievedServer.Color);
Expand All @@ -91,6 +96,8 @@ public async void Client_CanGetEditAServerInformation()
Assert.Equal(_inboundHookUrl + updatedAffix, retrievedServer.InboundHookUrl);
Assert.Equal(_bounceHookUrl + updatedAffix, retrievedServer.BounceHookUrl);
Assert.Equal(_openHookUrl + updatedAffix, retrievedServer.OpenHookUrl);
Assert.Equal(_clickHookUrl + updatedAffix, retrievedServer.ClickHookUrl);
Assert.Equal(_deliveryHookUrl + updatedAffix, retrievedServer.DeliveryHookUrl);
Assert.NotEqual(existingServer.PostFirstOpenOnly, retrievedServer.PostFirstOpenOnly);
Assert.NotEqual(existingServer.TrackOpens, retrievedServer.TrackOpens);
Assert.Equal(10, retrievedServer.InboundSpamThreshold);
Expand Down
5 changes: 5 additions & 0 deletions src/Postmark/Model/PostmarkServer.cs
Expand Up @@ -89,6 +89,11 @@ public PostmarkServer()
/// </summary>
public string ClickHookUrl { get; set; }

/// <summary>
/// URL to POST to when messages delivery occurs.
/// </summary>
public string DeliveryHookUrl { get; set; }

/// <summary>
/// Inbound domain for MX setup
/// </summary>
Expand Down

0 comments on commit 2a48e1a

Please sign in to comment.