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); } }
/// <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())); }
/// <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())); }
/// <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())); }
/// <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())); }