예제 #1
0
        public async void Can_Retrieve_Member_Profile_Field_Field_Selector_From_LinkedIN()
        {
            const string consumerKey    = "TODO_CONSUMER_KEY_HERE";
            const string consumerSecret = "TODO_CONSUMER_SECRET_HERE";
            const string accessToken    = "TODO_ACCES_TOKEN_HERE";
            const string accessSecret   = "TODO_ACCES_SECRET_HERE";

            // arrange
            var client = new RestClient {
                BaseUrl       = "http://api.linkedin.com/v1",
                Authenticator = OAuth1Authenticator.ForProtectedResource(consumerKey, consumerSecret, accessToken, accessSecret)
            };
            var request = new RestRequest("people/~:(id,first-name,last-name)");

            // act
            var response = await client.ExecuteAsync(request);

            var deserializer = new RestRT.Deserializers.JsonDeserializer();
            var result       = (LinkedINMemberProfile)deserializer.Deserialize(response, typeof(LinkedINMemberProfile));

            // assert
            Assert.IsNotNull(response);
            Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode);
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Id);
            Assert.IsNotNull(result.FirstName);
            Assert.IsNotNull(result.LastName);
        }
예제 #2
0
        public async Task Handles_Different_Root_Element_On_Error()
        {
            const string baseUrl = "http://localhost:8080/";

            using (HttpServer server = new HttpServer(8080, request => ResponseHandler(request.Path)))
            {
                var client  = new RestClient(baseUrl);
                var request = new RestRequest("error.json.txt");

                var response = await client.ExecuteAsync(request);

                var deserializer = new RestRT.Deserializers.JsonDeserializer();
                deserializer.RootElement = "Success";

                if (response.StatusCode == (int)HttpStatusCode.BadRequest)
                {
                    deserializer.RootElement = "Error";
                }

                var result = (Response)deserializer.Deserialize(response, typeof(Response));

                Assert.AreEqual((int)HttpStatusCode.BadRequest, response.StatusCode);
                Assert.AreEqual("Not found!", result.Message);
            }
        }
예제 #3
0
        public async Task Handles_Default_Root_Element_On_No_Error()
		{
			const string baseUrl = "http://localhost:8080/";
            using (HttpServer server = new HttpServer(8080, request => ResponseHandler(request.Path)) )
			{
				var client = new RestClient(baseUrl);
				var request = new RestRequest("success.json.txt");

                var response = await client.ExecuteAsync(request);

                var deserializer = new RestRT.Deserializers.JsonDeserializer();
                deserializer.RootElement = "Success";

                if (response.StatusCode == (int)HttpStatusCode.NotFound)
                {
                    deserializer.RootElement = "Error";
                }
                var result = (Response)deserializer.Deserialize(response, typeof(Response));

                Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode);
                Assert.AreEqual("Works!", result.Message);
			}
		}
예제 #4
0
        //[Fact]
        public async void Can_Authenticate_Netflix_With_OAuth()
        {
            WwwFormUrlDecoder decoder;

            const string consumerKey    = "";
            const string consumerSecret = "";

            var baseUrl = "http://api.netflix.com";
            var client  = new RestClient(baseUrl);

            client.Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret);
            var request  = new RestRequest("oauth/request_token");
            var response = await client.ExecuteAsync(request);

            Assert.IsNotNull(response);
            Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode);

            decoder = new WwwFormUrlDecoder(response.Content);
            var oauth_token        = decoder.GetFirstValueByName("oauth_token");
            var oauth_token_secret = decoder.GetFirstValueByName("oauth_token_secret");
            var applicationName    = decoder.GetFirstValueByName("application_name");

            //var qs = HttpUtility.ParseQueryString(response.Content);
            //var oauth_token = qs["oauth_token"];
            //var oauth_token_secret = qs["oauth_token_secret"];
            //var applicationName = qs["application_name"];

            Assert.IsNotNull(oauth_token);
            Assert.IsNotNull(oauth_token_secret);
            Assert.IsNotNull(applicationName);

            var baseSslUrl = "https://api-user.netflix.com";
            var sslClient  = new RestClient(baseSslUrl);

            request = new RestRequest("oauth/login");
            request.AddParameter("oauth_token", oauth_token);
            request.AddParameter("oauth_consumer_key", consumerKey);
            request.AddParameter("application_name", applicationName);
            var url = sslClient.BuildUri(request).ToString();

            //Process.Start(url);

            request = new RestRequest("oauth/access_token");             // <-- Breakpoint here, login to netflix
            client.Authenticator = OAuth1Authenticator.ForAccessToken(
                consumerKey, consumerSecret, oauth_token, oauth_token_secret
                );
            response = await client.ExecuteAsync(request);

            Assert.IsNotNull(response);
            Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode);

            decoder            = new WwwFormUrlDecoder(response.Content);
            oauth_token        = decoder.GetFirstValueByName("oauth_token");
            oauth_token_secret = decoder.GetFirstValueByName("oauth_token_secret");
            var user_id = decoder.GetFirstValueByName("user_id");

            //qs = HttpUtility.ParseQueryString(response.Content);
            //oauth_token = qs["oauth_token"];
            //oauth_token_secret = qs["oauth_token_secret"];
            //var user_id = qs["user_id"];

            Assert.IsNotNull(oauth_token);
            Assert.IsNotNull(oauth_token_secret);
            Assert.IsNotNull(user_id);

            client.Authenticator = OAuth1Authenticator.ForProtectedResource(consumerKey, consumerSecret, oauth_token, oauth_token_secret);
            request = new RestRequest("users/{user_id}/queues/disc");
            request.AddUrlSegment("user_id", user_id);
            request.AddParameter("max_results", "2");

            var queueResponse = await client.ExecuteAsync(request);             //

            var deserializer = new RestRT.Deserializers.JsonDeserializer();
            var result       = (Queue)deserializer.Deserialize(response, typeof(Queue));


            Assert.IsNotNull(queueResponse);
            Assert.AreEqual((int)HttpStatusCode.OK, queueResponse.StatusCode);

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Items.Count);
        }
예제 #5
0
		public async void Can_Retrieve_Member_Profile_Field_Field_Selector_From_LinkedIN()
		{
			const string consumerKey = "TODO_CONSUMER_KEY_HERE";
			const string consumerSecret = "TODO_CONSUMER_SECRET_HERE";
			const string accessToken = "TODO_ACCES_TOKEN_HERE";
			const string accessSecret = "TODO_ACCES_SECRET_HERE";

			// arrange
			var client = new RestClient {
				BaseUrl = "http://api.linkedin.com/v1",
				Authenticator = OAuth1Authenticator.ForProtectedResource( consumerKey, consumerSecret, accessToken, accessSecret )
			};
			var request = new RestRequest( "people/~:(id,first-name,last-name)" );

			// act
			var response = await client.ExecuteAsync(request);
            var deserializer = new RestRT.Deserializers.JsonDeserializer();
            var result = (LinkedINMemberProfile)deserializer.Deserialize(response, typeof(LinkedINMemberProfile));

			// assert
			Assert.IsNotNull( response );
			Assert.AreEqual( (int)HttpStatusCode.OK, response.StatusCode );
			Assert.IsNotNull( result );
			Assert.IsNotNull( result.Id );
			Assert.IsNotNull( result.FirstName );
			Assert.IsNotNull( result.LastName );
		}
예제 #6
0
		//[Fact]
		public async void Can_Authenticate_Netflix_With_OAuth()
		{
            WwwFormUrlDecoder decoder;

            const string consumerKey = "";
			const string consumerSecret = "";

			var baseUrl = "http://api.netflix.com";
			var client = new RestClient(baseUrl);
			client.Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret);
			var request = new RestRequest("oauth/request_token");
			var response = await client.ExecuteAsync(request);

			Assert.IsNotNull(response);
			Assert.AreEqual( (int)HttpStatusCode.OK, response.StatusCode);

            decoder = new WwwFormUrlDecoder(response.Content);
            var oauth_token = decoder.GetFirstValueByName("oauth_token");
            var oauth_token_secret = decoder.GetFirstValueByName("oauth_token_secret");
            var applicationName = decoder.GetFirstValueByName("application_name");

            //var qs = HttpUtility.ParseQueryString(response.Content);
            //var oauth_token = qs["oauth_token"];
            //var oauth_token_secret = qs["oauth_token_secret"];
            //var applicationName = qs["application_name"];
			
            Assert.IsNotNull(oauth_token);
			Assert.IsNotNull(oauth_token_secret);
			Assert.IsNotNull(applicationName);

			var baseSslUrl = "https://api-user.netflix.com";
			var sslClient = new RestClient(baseSslUrl);
			request = new RestRequest("oauth/login");
			request.AddParameter("oauth_token", oauth_token);
			request.AddParameter("oauth_consumer_key", consumerKey);
			request.AddParameter("application_name", applicationName);
			var url = sslClient.BuildUri(request).ToString();
			
			//Process.Start(url);

			request = new RestRequest("oauth/access_token"); // <-- Breakpoint here, login to netflix
			client.Authenticator = OAuth1Authenticator.ForAccessToken(
				consumerKey, consumerSecret, oauth_token, oauth_token_secret
			);
			response = await client.ExecuteAsync(request);

			Assert.IsNotNull(response);
			Assert.AreEqual( (int)HttpStatusCode.OK, response.StatusCode);

            decoder = new WwwFormUrlDecoder(response.Content);
            oauth_token = decoder.GetFirstValueByName("oauth_token");
            oauth_token_secret = decoder.GetFirstValueByName("oauth_token_secret");
            var user_id = decoder.GetFirstValueByName("user_id");

            //qs = HttpUtility.ParseQueryString(response.Content);
            //oauth_token = qs["oauth_token"];
            //oauth_token_secret = qs["oauth_token_secret"];
            //var user_id = qs["user_id"];
			
            Assert.IsNotNull(oauth_token);
			Assert.IsNotNull(oauth_token_secret);
			Assert.IsNotNull(user_id);

			client.Authenticator = OAuth1Authenticator.ForProtectedResource(consumerKey, consumerSecret, oauth_token, oauth_token_secret);
			request = new RestRequest("users/{user_id}/queues/disc");
			request.AddUrlSegment("user_id", user_id);
			request.AddParameter("max_results", "2");

			var queueResponse = await client.ExecuteAsync(request); //
            var deserializer = new RestRT.Deserializers.JsonDeserializer();
            var result = (Queue)deserializer.Deserialize(response, typeof(Queue));


			Assert.IsNotNull(queueResponse);
			Assert.AreEqual( (int)HttpStatusCode.OK, queueResponse.StatusCode);

			Assert.IsNotNull(result);
			Assert.AreEqual(2, result.Items.Count);
		}