-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
162 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
using System.Collections.Generic; | ||
using NUnit.Framework; | ||
|
||
namespace Nexmo.Api.Test.Integration | ||
{ | ||
[TestFixture] | ||
public class ShortCodeTest | ||
{ | ||
[Test] | ||
public void should_initiate_2fa() | ||
{ | ||
var response = ShortCode.RequestTwoFactorAuth(new ShortCode.TwoFactorAuthRequest | ||
{ | ||
to = "17775551212", | ||
pin = 1467 | ||
}); | ||
Assert.AreEqual("1", response.message_count); | ||
} | ||
|
||
[Test] | ||
public void should_initiate_alert() | ||
{ | ||
var response = ShortCode.RequestAlert(new ShortCode.AlertRequest | ||
{ | ||
to = "17775551212" | ||
}, new Dictionary<string, string> | ||
{ | ||
{"mcount", "xyz123"} | ||
}); | ||
Assert.AreEqual("1", response.message_count); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using System.Linq; | ||
using System.Text; | ||
using Moq; | ||
using Nexmo.Api.Request; | ||
using NUnit.Framework; | ||
|
||
namespace Nexmo.Api.Test.Unit | ||
{ | ||
[TestFixture] | ||
internal class ShortCodeTest : MockedWebTest | ||
{ | ||
[Test] | ||
public void should_initiate_2fa() | ||
{ | ||
var resp = new Mock<IWebResponse>(); | ||
resp.Setup(e => e.GetResponseStream()).Returns(new MemoryStream(Encoding.UTF8.GetBytes("{\"message-count\":\"1\",\"messages\":[{\"message-id\":\"02000000AE70FFFF\",\"to\":\"15555551212\",\"remaining-balance\":7.546,\"message-price\":0.0048,\"ok\":true,\"status\":\"0\",\"msisdn\":\"15555551212\",\"network\":\"US-FIXED\",\"messageId\":\"02000000AE70FFFF\",\"remainingBalance\":7.546,\"messagePrice\":0.0048}]}"))); | ||
_request.Setup(e => e.GetResponse()).Returns(resp.Object); | ||
var request = new ShortCode.TwoFactorAuthRequest | ||
{ | ||
to = "15555551212", | ||
pin = 1247 | ||
}; | ||
var response = ShortCode.RequestTwoFactorAuth(request); | ||
|
||
_mock.Verify(h => h.CreateHttp(new Uri( | ||
string.Format("{0}/sc/us/2fa/json?to={1}&pin={2}&api_key={3}&api_secret={4}&", RestUrl, request.to, request.pin, ApiKey, ApiSecret))), | ||
Times.Once); | ||
Assert.AreEqual("1", response.message_count); | ||
Assert.AreEqual("15555551212", response.messages.First().to); | ||
} | ||
|
||
[Test] | ||
public void should_initiate_alert() | ||
{ | ||
var resp = new Mock<IWebResponse>(); | ||
resp.Setup(e => e.GetResponseStream()).Returns(new MemoryStream(Encoding.UTF8.GetBytes("{\"message-count\":\"1\",\"messages\":[{\"message-id\":\"02000000AE70FFFF\",\"to\":\"15555551212\",\"remaining-balance\":7.546,\"message-price\":0.0048,\"ok\":true,\"status\":\"0\",\"msisdn\":\"15555551212\",\"network\":\"US-FIXED\",\"messageId\":\"02000000AE70FFFF\",\"remainingBalance\":7.546,\"messagePrice\":0.0048}]}"))); | ||
_request.Setup(e => e.GetResponse()).Returns(resp.Object); | ||
var request = new ShortCode.AlertRequest | ||
{ | ||
to = "15555551212" | ||
}; | ||
var customValues = new Dictionary<string, string> | ||
{ | ||
{"mcount", "xyz123"} | ||
}; | ||
var response = ShortCode.RequestAlert(request, customValues); | ||
|
||
_mock.Verify(h => h.CreateHttp(new Uri( | ||
string.Format("{0}/sc/us/alert/json?to={1}&api_key={2}&api_secret={3}&mcount={4}&", RestUrl, request.to, ApiKey, ApiSecret, customValues["mcount"]))), | ||
Times.Once); | ||
Assert.AreEqual("1", response.message_count); | ||
Assert.AreEqual("15555551212", response.messages.First().to); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,53 @@ | ||
namespace Nexmo.Api | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Web; | ||
using Newtonsoft.Json; | ||
using Nexmo.Api.Request; | ||
|
||
namespace Nexmo.Api | ||
{ | ||
public static class ShortCode | ||
{ | ||
// TODO | ||
{ | ||
public class TwoFactorAuthRequest | ||
{ | ||
public string to { get; set; } | ||
public int? pin { get; set; } | ||
[JsonProperty("client-ref")] | ||
public string clientRef { get; set; } | ||
} | ||
|
||
public class AlertRequest | ||
{ | ||
public string to { get; set; } | ||
[JsonProperty("status-report-req")] | ||
public string statusReportReq { get; set; } | ||
[JsonProperty("client-ref")] | ||
public string clientRef { get; set; } | ||
public int? template { get; set; } | ||
public string type { get; set; } | ||
} | ||
|
||
public static SMS.SMSResponse RequestTwoFactorAuth(TwoFactorAuthRequest request) | ||
{ | ||
if (!request.pin.HasValue) | ||
{ | ||
request.pin = new Random().Next(0, 9999); | ||
} | ||
|
||
var json = ApiRequest.DoRequest(ApiRequest.GetBaseUriFor(typeof(ShortCode), "/sc/us/2fa/json"), request); | ||
return JsonConvert.DeserializeObject<SMS.SMSResponse>(json); | ||
} | ||
|
||
public static SMS.SMSResponse RequestAlert(AlertRequest request, Dictionary<string, string> customValues) | ||
{ | ||
var sb = ApiRequest.GetQueryStringBuilderFor(request); | ||
foreach (var key in customValues.Keys) | ||
{ | ||
sb.AppendFormat("{0}={1}&", HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(customValues[key])); | ||
} | ||
|
||
var json = ApiRequest.DoRequest(ApiRequest.GetBaseUriFor(typeof(ShortCode), "/sc/us/alert/json?" + sb)); | ||
return JsonConvert.DeserializeObject<SMS.SMSResponse>(json); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters