public async Task EscapeParameterName() { var client = new RestClient("http://congress.api.sunlightfoundation.com"); string key = CredentialStore.RetrieveObject("sunlight.key.json").Key; client.AddDefaultHeader("X-APIKEY", key); dynamic proxy = new RestSharpProxy(client); // this is the mechanism by which parameter names that are not valid c# property names can be used var parameters = new Dictionary <string, object>() { { "chamber", "senate" }, { "history.house_passage_result", "pass" } }; dynamic result = await proxy.bills.get(paramList : parameters); Assert.IsNotNull(result); Assert.IsNotNull(result.results != null); Assert.IsTrue(result.results.Count > 0); foreach (dynamic bill in result.results) { Assert.AreEqual("senate", (string)bill.chamber); Assert.AreEqual("pass", (string)bill.history.house_passage_result); } }
// [Ignore] // - this test requires user interaction public async Task DeleteCalendar() { var auth = new GoogleOAuth2("email profile https://www.googleapis.com/auth/calendar"); _token = await auth.Authenticate(_token); Assert.IsNotNull(_token, "auth failed"); var client = new RestClient("https://www.googleapis.com/calendar/v3"); client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(_token); dynamic proxy = new RestSharpProxy(client); var list = await proxy.users.me.calendarList.get(); Assert.IsNotNull(list); string id = ((IEnumerable <dynamic>)(list.items)).Where(cal => cal.summary == "unit_testing").Select(cal => (string)cal.id).FirstOrDefault(); Assert.IsFalse(string.IsNullOrEmpty(id)); var result = await proxy.calendars(id).delete(); Assert.IsNull(result); //list = await proxy.users.me.calendarList.get(); //Assert.IsNotNull(list); //id = ((IEnumerable<dynamic>)(list.items)).Where(cal => cal.summary == "unit_testing").Select(cal => (string)cal.id).FirstOrDefault(); //Assert.IsTrue(string.IsNullOrEmpty(id)); }
public async Task GetMethodSegmentWithArgs() { var client = new RestClient("http://openstates.org/api/v1"); string key = CredentialStore.RetrieveObject("sunlight.key.json").Key; client.AddDefaultHeader("X-APIKEY", key); dynamic proxy = new RestSharpProxy(client); var result = await proxy.bills.mn("2013s1")("SF 1").get(); Assert.IsNotNull(result); Assert.IsTrue(result.id == "MNB00017167"); }
public async Task ExplicitGetInvoke() { var client = new RestClient("http://openstates.org/api/v1"); string key = CredentialStore.RetrieveObject("sunlight.key.json").Key; client.AddDefaultHeader("X-APIKEY", key); dynamic proxy = new RestSharpProxy(client); dynamic result = await proxy.metadata.mn.get(); Assert.IsNotNull(result); Assert.IsTrue(result.name == "Minnesota"); }
public async Task GetMethod1PathArg1Param() { var client = new RestClient("http://openstates.org/api/v1"); string key = CredentialStore.RetrieveObject("sunlight.key.json").Key; client.AddDefaultHeader("X-APIKEY", key); dynamic proxy = new RestSharpProxy(client); var result = await proxy.bills.get(state : "mn", chamber : "upper", status : "passed_upper"); Assert.IsNotNull(result); Assert.IsNotNull(result.Count > 0); Assert.IsTrue(result[0].chamber == "upper"); }
public async Task FindUserByName() { var key = CredentialStore.RetrieveObject("flickr.key.json"); var client = new RestClient("https://api.flickr.com/services/rest/"); client.AddDefaultParameter("format", "json"); client.AddDefaultParameter("api_key", (string)key.Key); client.AddDefaultParameter("nojsoncallback", "1"); dynamic proxy = new RestSharpProxy(client); dynamic result = await proxy.get(method : "flickr.people.findByUsername", username : "******"); Assert.IsNotNull(result); Assert.AreEqual("9039518@N03", (string)result.user.id); }
// [Ignore] // - this test requires user interaction public async Task GetCalendarList() { var auth = new GoogleOAuth2("email profile https://www.googleapis.com/auth/calendar"); _token = await auth.Authenticate(_token); Assert.IsNotNull(_token, "auth failed"); var client = new RestClient("https://www.googleapis.com/calendar/v3"); client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(_token); dynamic proxy = new RestSharpProxy(client); var list = await proxy.users.me.calendarList.get(); Assert.IsNotNull(list); Assert.AreEqual("calendar#calendarList", (string)list.kind); }
// [Ignore] // - this test requires user interaction public async Task GetUserProfile() { var auth = new GoogleOAuth2("profile"); _token = await auth.Authenticate(_token); Assert.IsNotNull(_token, "auth failed"); var client = new RestClient("https://www.googleapis.com"); client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(_token); dynamic proxy = new RestSharpProxy(client); var profile = await proxy.oauth2.v1.userinfo.get(); Assert.IsNotNull(profile); Assert.AreEqual("Kackman", (string)profile.family_name); }
public async Task UploadPhoto() { var key = CredentialStore.RetrieveObject("flickr.key.json"); var client = new RestClient("https://up.flickr.com/services/"); client.AddDefaultParameter("format", "json"); client.AddDefaultParameter("api_key", (string)key.Key); client.AddDefaultParameter("nojsoncallback", "1"); var file = new FileInfo(@"D:\temp\test.png"); dynamic proxy = new RestSharpProxy(client); dynamic result = await proxy.upload.post(photo : file); Assert.IsNotNull(result); }
public async Task GetMethod2PathAsProperty2Params() { var client = new RestClient("http://openstates.org/api/v1"); string key = CredentialStore.RetrieveObject("sunlight.key.json").Key; client.AddDefaultHeader("X-APIKEY", key); dynamic proxy = new RestSharpProxy(client); var parameters = new Dictionary <string, object>() { { "lat", 44.926868 }, { "long", -93.214049 } // since long is a keyword we need to pass arguments in a Dictionary }; var result = await proxy.legislators.geo.get(paramList : parameters); Assert.IsNotNull(result); Assert.IsTrue(result.Count > 0); }
public async Task GetFormattedAddressFromCoordinate() { var client = new RestClient("http://dev.virtualearth.net/REST/v1/"); string key = CredentialStore.RetrieveObject("bing.key.json").Key; client.AddDefaultParameter("key", key); dynamic proxy = new RestSharpProxy(client); var result = await proxy.Locations("44.9108238220215,-93.1702041625977").get(includeEntityTypes: "Address,PopulatedPlace,Postcode1,AdminDivision1,CountryRegion"); Assert.AreEqual(200, (int)result.statusCode); Assert.IsTrue(result.resourceSets.Count > 0); Assert.IsTrue(result.resourceSets[0].resources.Count > 0); var address = result.resourceSets[0].resources[0].address.formattedAddress; Assert.AreEqual("1012 Davern St, St Paul, MN 55116", (string)address); }
public async Task CoordinateFromPostalCode() { var client = new RestClient("http://dev.virtualearth.net/REST/v1/"); string key = CredentialStore.RetrieveObject("bing.key.json").Key; client.AddDefaultParameter("key", key); dynamic proxy = new RestSharpProxy(client); var result = await proxy.Locations.get(postalCode : "55116", countryRegion : "US"); Assert.AreEqual(200, (int)result.statusCode); Assert.IsTrue(result.resourceSets.Count > 0); Assert.IsTrue(result.resourceSets[0].resources.Count > 0); var r = result.resourceSets[0].resources[0].point.coordinates; Assert.IsTrue((44.9108238220215).AboutEqual((double)r[0])); Assert.IsTrue((-93.1702041625977).AboutEqual((double)r[1])); }
// [Ignore] // - this test requires user interaction public async Task CreateCalendar() { var auth = new GoogleOAuth2("email profile https://www.googleapis.com/auth/calendar"); _token = await auth.Authenticate(_token); Assert.IsNotNull(_token, "auth failed"); var client = new RestClient("https://www.googleapis.com/calendar/v3"); client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(_token); dynamic proxy = new RestSharpProxy(client); dynamic calendar = new ExpandoObject(); calendar.summary = "unit_testing"; var list = await proxy.calendars.post(calendar); Assert.IsNotNull(list); Assert.AreEqual("unit_testing", (string)list.summary); }
// [Ignore] // - this test requires user interaction public async Task UpdateCalendar() { var auth = new GoogleOAuth2("email profile https://www.googleapis.com/auth/calendar"); _token = await auth.Authenticate(_token); Assert.IsNotNull(_token, "auth failed"); var client = new RestClient("https://www.googleapis.com/calendar/v3"); client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(_token); dynamic proxy = new RestSharpProxy(client); var list = await proxy.users.me.calendarList.get(); Assert.IsNotNull(list); string id = ((IEnumerable <dynamic>)(list.items)).Where(cal => cal.summary == "unit_testing").Select(cal => (string)cal.id).FirstOrDefault(); Assert.IsFalse(string.IsNullOrEmpty(id)); var guid = Guid.NewGuid().ToString(); dynamic calendar = new ExpandoObject(); calendar.summary = "unit_testing"; calendar.description = guid; var result = await proxy.calendars(id).put(calendar); Assert.IsNotNull(result); list = await proxy.users.me.calendarList.get(); Assert.IsNotNull(list); string description = ((IEnumerable <dynamic>)(list.items)).Where(cal => cal.summary == "unit_testing").Select(cal => (string)cal.description).FirstOrDefault(); Assert.AreEqual(guid, description); }
public RequestBuilder(RestSharpProxy proxy) { Debug.Assert(proxy != null); _proxy = proxy; }