예제 #1
0
        public void TestQueriesPerSecond()
        {
            // This test assumes that the time to run a mocked query is
            // relatively small, eg a few milliseconds. We define a rate of
            // 3 queries per second, and run double that, which should take at
            // least 1 second but no more than 2.

            // Init
            var queriesPerSecond = 3;
            var queryRange       = queriesPerSecond * 2;

            // Set API client config
            var clientConfig = new MapsAPIClientConfig
            {
                QueriesPerSecond = queriesPerSecond
            };

            // Use mocked API client
            using (var client = GetMockedAPIClient(clientConfig: clientConfig))
            {
                // Arrange mocks for empty result
                client.ArrangeWebResponseValidResultsMocks();

                // Make client calls
                var startTime = DateTime.Now;
                for (var i = 0; i < queryRange; i++)
                {
                    client.Geocoding.Geocode("Sesame St.");
                }

                // Get elapsed time
                var elapsedTime = DateTime.Now - startTime;

                // Assertions
                elapsedTime.Seconds.Should().BeInRange(1, 2);
            }
        }
예제 #2
0
 /// <summary>
 /// Get mocked API client (with enteprrise credentials)
 /// </summary>
 /// <param name="clientId">Client Id</param>
 /// <param name="clientSecret">Client secret</param>
 /// <param name="clientConfig">Client config</param>
 /// <returns>Client</returns>
 public IMapsAPIClient GetMockedAPIClient(string clientId, string clientSecret, MapsAPIClientConfig clientConfig = null)
 {
     return(MockRepository.GenerateMock <MapsAPIClient>(clientId, clientSecret, clientConfig ?? MapsAPIClientConfig.Default()));
 }
예제 #3
0
 /// <summary>
 /// Get API client (with enteprrise credentials)
 /// </summary>
 /// <param name="clientId">Client Id</param>
 /// <param name="clientSecret">Client secret</param>
 /// <param name="clientConfig">Client config</param>
 /// <returns>Client</returns>
 public IMapsAPIClient GetAPIClient(string clientId, string clientSecret, MapsAPIClientConfig clientConfig = null)
 {
     return(new MapsAPIClient(clientId, clientSecret, clientConfig ?? MapsAPIClientConfig.Default()));
 }
예제 #4
0
 /// <summary>
 /// Get mocked API client (with API key)
 /// </summary>
 /// <param name="apiKey">API key</param>
 /// <param name="clientConfig">Client config</param>
 /// <returns>Client</returns>
 public IMapsAPIClient GetMockedAPIClient(string apiKey = TestsStaticConfiguration.GoogleMapsAPIKey, MapsAPIClientConfig clientConfig = null)
 {
     return(MockRepository.GenerateMock <MapsAPIClient>(apiKey, clientConfig ?? MapsAPIClientConfig.Default()));
 }
예제 #5
0
 /// <summary>
 /// Get API client (with API key)
 /// </summary>
 /// <param name="apiKey">API key</param>
 /// <param name="clientConfig">Client config</param>
 /// <returns>Client</returns>
 public IMapsAPIClient GetAPIClient(string apiKey = TestsStaticConfiguration.GoogleMapsAPIKey, MapsAPIClientConfig clientConfig = null)
 {
     return(new MapsAPIClient(apiKey, clientConfig ?? MapsAPIClientConfig.Default()));
 }