public void TestFailedAsyncRequest() { //ARRANGE var expectedResponse = @"{ ""status"": 4 }"; var expectedUri = $"{ApiUrl}/ni/advanced/async/json?callback={HttpUtility.UrlEncode("https://example.com/callback")}&ip={HttpUtility.UrlEncode("123.0.0.255")}&cnam=true&number=15555551212&country=GB&api_key={ApiKey}&api_secret={ApiSecret}&"; var request = new AdvancedNumberInsightAsynchronousRequest { Cnam = true, Country = "GB", Number = "15555551212", Ip = "123.0.0.255", Callback = "https://example.com/callback" }; Setup(expectedUri, expectedResponse); //ACT var creds = Request.Credentials.FromApiKeyAndSecret(ApiKey, ApiSecret); var client = new NexmoClient(creds); try { client.NumberInsightClient.GetNumberInsightAsync(request); //ASSERT Assert.True(false, "Auto fail because request returned without throwing exception"); } catch (NumberInsights.NexmoNumberInsightResponseException ex) { //ASSERT Assert.Equal(4, ex.Response.Status); } }
public void TestAdvancedAsync(bool passCreds, bool kitchenSink) { var expectedResponse = @"{ ""request_id"": ""aaaaaaaa-bbbb-cccc-dddd-0123456789ab"", ""number"": ""447700900000"", ""remaining_balance"": ""1.23456789"", ""request_price"": ""0.01500000"", ""status"": 0 }"; var expectedUri = $"{ApiUrl}/ni/advanced/async/json"; AdvancedNumberInsightAsynchronousRequest request; if (kitchenSink) { expectedUri += $"?callback={HttpUtility.UrlEncode("https://example.com/callback")}&ip={HttpUtility.UrlEncode("123.0.0.255")}&cnam=true&number=15555551212&country=GB&api_key={ApiKey}&api_secret={ApiSecret}&"; request = new AdvancedNumberInsightAsynchronousRequest { Cnam = true, Country = "GB", Number = "15555551212", Ip = "123.0.0.255", Callback = "https://example.com/callback" }; } else { expectedUri += $"?callback={HttpUtility.UrlEncode("https://example.com/callback")}&number=15555551212&api_key={ApiKey}&api_secret={ApiSecret}&"; request = new AdvancedNumberInsightAsynchronousRequest { Number = "15555551212", Callback = "https://example.com/callback" }; } Setup(expectedUri, expectedResponse); //ACT var creds = Request.Credentials.FromApiKeyAndSecret(ApiKey, ApiSecret); var client = new NexmoClient(creds); AdvancedInsightsAsyncResponse response; if (passCreds) { response = client.NumberInsightClient.GetNumberInsightAsync(request, creds); } else { response = client.NumberInsightClient.GetNumberInsightAsync(request); } //ASSERT Assert.Equal("aaaaaaaa-bbbb-cccc-dddd-0123456789ab", response.RequestId); Assert.Equal("447700900000", response.Number); Assert.Equal("1.23456789", response.RemainingBalance); Assert.Equal("0.01500000", response.RequestPrice); Assert.Equal(0, response.Status); }
public void Execute() { var VONAGE_API_KEY = Environment.GetEnvironmentVariable("VONAGE_API_KEY") ?? "VONAGE_API_KEY"; var VONAGE_API_SECRET = Environment.GetEnvironmentVariable("VONAGE_API_SECRET") ?? "VONAGE_API_SECRET"; var INSIGHT_NUMBER = Environment.GetEnvironmentVariable("INSIGHT_NUMBER") ?? "INSIGHT_NUMBER"; var callbackUrl = "https://demo.ngrok.io/webhooks/insight"; var creds = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET); var client = new VonageClient(creds); var request = new AdvancedNumberInsightAsynchronousRequest() { Number = INSIGHT_NUMBER, Callback = callbackUrl }; var response = client.NumberInsightClient.GetNumberInsightAsync(request); Console.WriteLine($"Advanced insights request status: {response.Status}"); }