public async void Post_UserInfo() { const string userAgent = "common-libraries-dotnet"; var auth = new AuthenticationClient(); await auth.UsernamePasswordAsync(_consumerKey, _consumerSecret, _username, _password, userAgent, _tokenRequestEndpointUrl); var serviceHttpClient = new ServiceHttpClient(auth.InstanceUrl, auth.ApiVersion, auth.AccessToken, userAgent, new HttpClient()); var objectName = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("access_token", auth.AccessToken) }); var response = await serviceHttpClient.HttpPostAsync<UserInfo>(objectName, new Uri(auth.Id)); Assert.IsNotNull(response); }
public void Init() { _auth = new AuthenticationClient(); _auth.UsernamePasswordAsync(ConsumerKey, ConsumerSecret, Username, Password, TokenRequestEndpointUrl).Wait(); _serviceHttpClient = new ServiceHttpClient(_auth.InstanceUrl, _auth.ApiVersion, _auth.AccessToken, new HttpClient()); }
public async void Query_Describe() { const string userAgent = "common-libraries-dotnet"; var auth = new AuthenticationClient(); await auth.UsernamePasswordAsync(_consumerKey, _consumerSecret, _username, _password, userAgent, _tokenRequestEndpointUrl); var serviceHttpClient = new ServiceHttpClient(auth.InstanceUrl, auth.ApiVersion, auth.AccessToken, userAgent, new HttpClient()); var objectName = "Account"; var response = await serviceHttpClient.HttpGetAsync<dynamic>(string.Format("sobjects/{0}", objectName)); Assert.IsNotNull(response); }
public async void Query_Objects() { const string userAgent = "common-libraries-dotnet"; var auth = new AuthenticationClient(); await auth.UsernamePasswordAsync(_consumerKey, _consumerSecret, _username, _password, userAgent, _tokenRequestEndpointUrl); var serviceHttpClient = new ServiceHttpClient(auth.InstanceUrl, auth.ApiVersion, auth.AccessToken, userAgent, new HttpClient()); var response = await serviceHttpClient.HttpGetAsync<DescribeGlobalResult<dynamic>>(string.Format("sobjects")); Assert.IsTrue(response.maxBatchSize > 0); Assert.IsTrue(response.sobjects.Count > 0); }
public async void Query_Select_Count() { const string userAgent = "common-libraries-dotnet"; var auth = new AuthenticationClient(); await auth.UsernamePasswordAsync(_consumerKey, _consumerSecret, _username, _password, userAgent, _tokenRequestEndpointUrl); var serviceHttpClient = new ServiceHttpClient(auth.InstanceUrl, auth.ApiVersion, auth.AccessToken, userAgent, new HttpClient()); var query = "SELECT count() FROM Account"; var response = await serviceHttpClient.HttpGetAsync<QueryResult<dynamic>>(string.Format("query?q={0}", query)); Assert.IsTrue(response.totalSize > 0); Assert.IsTrue(response.records.Count == 0); }
public void Init() { if (string.IsNullOrEmpty(_consumerKey) && string.IsNullOrEmpty(_consumerSecret) && string.IsNullOrEmpty(_username) && string.IsNullOrEmpty(_password)) { _consumerKey = Environment.GetEnvironmentVariable("ConsumerKey"); _consumerSecret = Environment.GetEnvironmentVariable("ConsumerSecret"); _username = Environment.GetEnvironmentVariable("Username"); _password = Environment.GetEnvironmentVariable("Password"); } _auth = new AuthenticationClient(); _auth.UsernamePasswordAsync(_consumerKey, _consumerSecret, _username, _password, TokenRequestEndpointUrl).Wait(); _serviceHttpClient = new ServiceHttpClient(_auth.InstanceUrl, _auth.ApiVersion, _auth.AccessToken, new HttpClient()); }
public async void Requests_CheckHttpRequestMessage_HttpGet_WithNode() { var client = new HttpClient(new ServiceClientRouteHandler(r => { Assert.AreEqual(r.RequestUri.ToString(), "http://localhost:1899/services/data/v30/wade"); Assert.IsNotNull(r.Headers.UserAgent); Assert.AreEqual(r.Headers.UserAgent.ToString(), "common-libraries-dotnet/v30"); Assert.IsNotNull(r.Headers.Authorization); Assert.AreEqual(r.Headers.Authorization.ToString(), "Bearer accessToken"); })); using (var httpClient = new ServiceHttpClient("http://localhost:1899", "v30", "accessToken", client)) { await httpClient.HttpGetAsync<object>("wade"); } }
public void Init() { if (string.IsNullOrEmpty(_consumerKey) && string.IsNullOrEmpty(_consumerSecret) && string.IsNullOrEmpty(_username) && string.IsNullOrEmpty(_password)) { _consumerKey = Environment.GetEnvironmentVariable("ConsumerKey"); _consumerSecret = Environment.GetEnvironmentVariable("ConsumerSecret"); _username = Environment.GetEnvironmentVariable("Username"); _password = Environment.GetEnvironmentVariable("Password"); } // Use TLS 1.2 (instead of defaulting to 1.0) ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; _auth = new AuthenticationClient(); _auth.UsernamePasswordAsync(_consumerKey, _consumerSecret, _username, _password, TokenRequestEndpointUrl).Wait(); _serviceHttpClient = new ServiceHttpClient(_auth.InstanceUrl, _auth.ApiVersion, _auth.AccessToken, new HttpClient()); }
public async void Upsert_New_CheckReturnInclude() { const string userAgent = "common-libraries-dotnet"; var auth = new AuthenticationClient(); await auth.UsernamePasswordAsync(_consumerKey, _consumerSecret, _username, _password, userAgent, _tokenRequestEndpointUrl); var serviceHttpClient = new ServiceHttpClient(auth.InstanceUrl, auth.ApiVersion, auth.AccessToken, userAgent, new HttpClient()); var account = new Account { Name = "New Account" + DateTime.Now.Ticks, Description = "New Account Description" + DateTime.Now.Ticks }; var response = await serviceHttpClient.HttpPatchAsync(account, string.Format("sobjects/{0}/{1}/{2}", "Account", "ExternalID__c", DateTime.Now.Ticks)); Assert.IsNotNull(response); Assert.IsNotNull(response.id); }
public async void Requests_CheckCustomRequestsHeaders() { var client = new HttpClient(new ServiceClientRouteHandler(r => { Assert.IsNotNull(r.Headers.GetValues("headername")); Assert.AreEqual(r.Headers.GetValues("headername").FirstOrDefault(), "headervalue"); })); client.DefaultRequestHeaders.Add("headername", "headervalue"); using (var httpClient = new ServiceHttpClient("http://localhost:1899", "v30", "accessToken", client)) { await httpClient.HttpGetAsync<object>("wade"); } }
public async void Requests_CheckHttpRequestMessage_HttpPost() { var client = new HttpClient(new ServiceClientRouteHandler(r => { Assert.AreEqual(r.RequestUri.ToString(), "http://localhost:1899/services/data/v34/wade"); Assert.IsNotNull(r.Headers.UserAgent); Assert.AreEqual(r.Headers.UserAgent.ToString(), UserAgent + "/v34"); Assert.IsNotNull(r.Headers.Authorization); Assert.AreEqual(r.Headers.Authorization.ToString(), "Bearer accessToken"); })); using (var httpClient = new ServiceHttpClient("http://localhost:1899", "v34", "accessToken", client)) { await httpClient.HttpPostAsync<object>(null, "wade"); } }
public void NewServiceHttpClient_ResetsUserAgents() { var httpClientUserAgent = UserAgent + "/v34"; var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(httpClientUserAgent); httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(httpClientUserAgent); Assert.AreEqual(httpClientUserAgent + " " + httpClientUserAgent, httpClient.DefaultRequestHeaders.UserAgent.ToString()); var serviceClient = new ServiceHttpClient("http://localhost:1899", "v34", "accessToken", httpClient); // Ensure the old user agent header is replaced. Assert.AreEqual(httpClientUserAgent, httpClient.DefaultRequestHeaders.UserAgent.ToString()); }
public async Task BadTokenHandling() { var badToken = "badtoken"; var serviceHttpClient = new ServiceHttpClient(_auth.InstanceUrl, _auth.ApiVersion, badToken, new HttpClient()); const string query = "SELECT count() FROM Account"; try { await serviceHttpClient.HttpGetAsync<QueryResult<dynamic>>(string.Format("query?q={0}", query)); } catch (ForceException ex) { Assert.IsNotNull(ex); Assert.IsNotNull(ex.Message); Assert.That(ex.Message, Is.EqualTo("Session expired or invalid")); Assert.IsNotNull(ex.Error); } }
public static async Task SetupClientCredentials(this ServiceHttpClient client, Func <Task <TokenClient> > tokenClientProvider) { client.SetBearerToken(await client.GetAccessToken(tokenClientProvider)); }
public static async Task <HttpResponseMessage> DeleteWithClientCredentials(this ServiceHttpClient client, string uri) { await SetupClientCredentials(client); return(await client.DeleteAsync(uri)); }
private static async Task SetupClientCredentials(this ServiceHttpClient client) { await client.SetupClientCredentials(client.GetConfiguredTokenClient); }
public async void BadTokenHandling() { _auth = new AuthenticationClient(); _auth.UsernamePasswordAsync(ConsumerKey, ConsumerSecret, Username, Password, TokenRequestEndpointUrl).Wait(); var badToken = "badtoken"; var serviceHttpClient = new ServiceHttpClient(_auth.InstanceUrl, _auth.ApiVersion, badToken, new HttpClient()); const string query = "SELECT count() FROM Account"; try { await serviceHttpClient.HttpGetAsync<QueryResult<dynamic>>(string.Format("query?q={0}", query)); } catch (ForceException ex) { Assert.IsNotNull(ex); Assert.IsNotNull(ex.Message); Assert.That(ex.Message, Is.EqualTo("Session expired or invalid")); Assert.IsNotNull(ex.Error); } }