示例#1
0
        public void Init()
        {
            this._mockHttp = new MockResponseHandler();
            var internalHttpClient = new System.Net.Http.HttpClient(this._mockHttp);

            this.TwilioHttpClient = new SystemNetHttpClient(internalHttpClient);
        }
示例#2
0
        public async Task MakeRequestAsync()
        {
            var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);

            responseMessage.Content = new StringContent("Hello world!");
            this.MockHttpClientFixture.MockHandler.Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .Returns(Task.FromResult(responseMessage));
            var client = new SystemNetHttpClient(
                new HttpClient(this.MockHttpClientFixture.MockHandler.Object));
            var request = new StripeRequest(
                this.StripeClient,
                HttpMethod.Post,
                "/foo",
                null,
                null);

            var response = await client.MakeRequestAsync(request);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal("Hello world!", response.Content);
        }
示例#3
0
        public static void RunTest()
        {
            var client  = new SystemNetHttpClient();
            var request = new Request(HttpMethod.Get, "https://api.twilio.com:8443");

            Response response = null;

            try
            {
                response = client.MakeRequest(request);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR:");
                Console.WriteLine(e);
            }

            Console.WriteLine();
            if (response?.StatusCode == HttpStatusCode.OK)
            {
                Console.WriteLine("Result: SUCCESS!");
            }
            else
            {
                Console.WriteLine("Result: FAILURE");
            }

            Console.WriteLine();
            Console.Write("Press any key to continue.");
            Console.ReadKey();
        }
示例#4
0
        public void NoTelemetryWhenDisabled()
        {
            var mockHandler = new Mock <HttpClientHandler> {
                CallBase = true
            };
            var httpClient = new SystemNetHttpClient(
                new System.Net.Http.HttpClient(mockHandler.Object),
                enableTelemetry: false);
            var stripeClient = new StripeClient("sk_test_123", httpClient: httpClient);

            mockHandler.Reset();
            var fakeServer = FakeServer.ForMockHandler(mockHandler);

            fakeServer.Delay = TimeSpan.FromMilliseconds(20);

            var service = new BalanceService(stripeClient);

            service.Get();
            fakeServer.Delay = TimeSpan.FromMilliseconds(40);
            service.Get();
            service.Get();

            mockHandler.Protected()
            .Verify(
                "SendAsync",
                Times.Exactly(3),
                ItExpr.Is <HttpRequestMessage>(m =>
                                               !m.Headers.Contains("X-Stripe-Client-Telemetry")),
                ItExpr.IsAny <CancellationToken>());
        }
示例#5
0
        public void CanInspectEnableTelemetry()
        {
            var client = new SystemNetHttpClient(
                httpClient: new HttpClient(this.MockHttpClientFixture.MockHandler.Object),
                enableTelemetry: true);

            Assert.True(client.EnableTelemetry);
        }
示例#6
0
        public void CanInspectMaxNetworkRetries()
        {
            var client = new SystemNetHttpClient(
                httpClient: new HttpClient(this.MockHttpClientFixture.MockHandler.Object),
                maxNetworkRetries: 2);

            Assert.Equal(2, client.MaxNetworkRetries);
        }
        /// <summary>
        /// Initializes the Twilio client.
        /// </summary>
        /// <param name="twilioAccountSidSecretName">The SSID of the Twilio account to authenticate as.</param>
        /// <param name="twilioAuthTokenSecretName">The auth token to use for authentication.</param>
        /// <param name="authority">The authority to authenticate against.</param>
        /// <returns>An asynchronous task.</returns>
        public async Task InitializeAsync(string twilioAccountSidSecretName, string twilioAuthTokenSecretName, string authority)
        {
            Secret twilioAccountSid = await _secretStore.GetSecretAsync(twilioAccountSidSecretName, authority);

            Secret twilioAuthToken = await _secretStore.GetSecretAsync(twilioAuthTokenSecretName, authority);

            Twilio.Http.HttpClient twilioHttpClient = new SystemNetHttpClient(_httpClient.GetHttpClient());

            _twilioClient = new TwilioRestClient(twilioAccountSid.Value, twilioAuthToken.Value, httpClient: twilioHttpClient);
        }
示例#8
0
        public NetworkRetriesTest(MockHttpClientFixture mockHttpClientFixture)
            : base(mockHttpClientFixture)
        {
            var httpClient = new SystemNetHttpClient(
                httpClient: new System.Net.Http.HttpClient(
                    this.MockHttpClientFixture.MockHandler.Object),
                maxNetworkRetries: 2)
            {
                NetworkRetriesSleep = false,
            };

            this.StripeClient = new StripeClient("sk_test_123", httpClient: httpClient);
        }
示例#9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="BaseStripeTest"/> with both the
        /// <see cref="StripeMockFixture"/> and the <see cref="MockHttpClientFixture"/> fixtures.
        /// Use this constructor for tests that need to send requests to stripe-mock and also need
        /// mocking capabilities (i.e. need to assert or stub HTTP requests).
        /// </summary>
        public BaseStripeTest(
            StripeMockFixture stripeMockFixture,
            MockHttpClientFixture mockHttpClientFixture)
        {
            this.StripeMockFixture     = stripeMockFixture;
            this.MockHttpClientFixture = mockHttpClientFixture;

            if ((this.StripeMockFixture != null) && (this.MockHttpClientFixture != null))
            {
                // Set up StripeClient to use stripe-mock with the mock HTTP client
                var httpClient = new SystemNetHttpClient(
                    new HttpClient(this.MockHttpClientFixture.MockHandler.Object));
                this.StripeClient = this.StripeMockFixture.BuildStripeClient(
                    httpClient: httpClient);

                // Reset the mock before each test
                this.MockHttpClientFixture.Reset();
            }
            else if (this.StripeMockFixture != null)
            {
                // Set up StripeClient to use stripe-mock
                this.StripeClient = this.StripeMockFixture.BuildStripeClient();
            }
            else if (this.MockHttpClientFixture != null)
            {
                // Set up StripeClient with the mock HTTP client
                var httpClient = new SystemNetHttpClient(
                    new HttpClient(this.MockHttpClientFixture.MockHandler.Object));
                this.StripeClient = new StripeClient(
                    "sk_test_123",
                    httpClient: httpClient);

                // Reset the mock before each test
                this.MockHttpClientFixture.Reset();
            }
            else
            {
                // Use the default StripeClient
                this.StripeClient = new StripeClient("sk_test_123");
            }
        }
示例#10
0
        public async Task UserAgentIncludesAppInfo()
        {
            var appInfo = new AppInfo
            {
                Name      = "MyAwesomeApp",
                PartnerId = "pp_123",
                Version   = "1.2.34",
                Url       = "https://myawesomeapp.info"
            };

            var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);

            responseMessage.Content = new StringContent("Hello world!");
            this.MockHttpClientFixture.MockHandler.Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .Returns(Task.FromResult(responseMessage));

            var client = new SystemNetHttpClient(
                httpClient: new HttpClient(this.MockHttpClientFixture.MockHandler.Object),
                appInfo: appInfo);
            var request = new StripeRequest(
                this.StripeClient,
                HttpMethod.Post,
                "/foo",
                null,
                null);
            await client.MakeRequestAsync(request);

            this.MockHttpClientFixture.MockHandler.Protected()
            .Verify(
                "SendAsync",
                Times.Once(),
                ItExpr.Is <HttpRequestMessage>(m => this.VerifyHeaders(m.Headers)),
                ItExpr.IsAny <CancellationToken>());
        }