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);
        }
示例#3
0
        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}");
        }