public void ProcessIDResultsTest()
        {
            var rawReqProc = new RawRequestProcessor <Raw>();

            List <Raw> result = rawReqProc.ProcessResults(QueryResponse);

            Assert.Equal(QueryResponse, result.First().Result);
        }
        public void BuildUrl_Requires_NonNull_QueryString()
        {
            var rawReqProc = new RawRequestProcessor<Raw> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string>
            {
                //{"QueryString", "statuses/public_timeline.json"},
            };

            var ex = Assert.Throws<ArgumentNullException>(() => rawReqProc.BuildUrl(parameters));

            Assert.Equal("QueryString", ex.ParamName);
        }
        public void BuildUrl_Requires_NonBlank_QueryString()
        {
            var rawReqProc = new RawRequestProcessor<Raw> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string>
            {
                {"QueryString", " "},
            };

            var ex = L2TAssert.Throws<ArgumentException>(() => rawReqProc.BuildUrl(parameters));

            Assert.AreEqual("QueryString", ex.ParamName);
        }
        public void BuildUrl_Returns_Full_Url()
        {
            var rawReqProc = new RawRequestProcessor<Raw> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string>
             {
                 {"QueryString", "statuses/public_timeline.json"},
             };
            string expected = "https://api.twitter.com/1.1/statuses/public_timeline.json";

            Request req = rawReqProc.BuildUrl(parameters);

            Assert.AreEqual(expected, req.FullUrl);
        }
        public void BuildUrl_Requires_NonNull_QueryString()
        {
            var rawReqProc = new RawRequestProcessor <Raw> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>
            {
                //{"QueryString", "statuses/public_timeline.json"},
            };

            var ex = L2TAssert.Throws <ArgumentNullException>(() => rawReqProc.BuildUrl(parameters));

            Assert.AreEqual("QueryString", ex.ParamName);
        }
        public void GetParameters_Returns_Parameters()
        {
            var rawReqProc = new RawRequestProcessor <Raw>();
            Expression <Func <Raw, bool> > expression =
                raw =>
                raw.QueryString == "/statuses/public_timeline.json";
            var lambdaExpression = expression as LambdaExpression;

            var queryParams = rawReqProc.GetParameters(lambdaExpression);

            Assert.True(
                queryParams.Contains(
                    new KeyValuePair <string, string>("QueryString", "/statuses/public_timeline.json")));
        }
        public void BuildUrl_WithBlankQueryString_Throws()
        {
            var rawReqProc = new RawRequestProcessor <Raw> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>
            {
                { nameof(Raw.QueryString), " " },
            };

            var ex = L2TAssert.Throws <ArgumentException>(() => rawReqProc.BuildUrl(parameters));

            Assert.AreEqual("QueryString", ex.ParamName);
        }
        public void BuildUrl_Requires_NonBlank_QueryString()
        {
            var rawReqProc = new RawRequestProcessor <Raw> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>
            {
                { "QueryString", " " },
            };

            var ex = Assert.Throws <ArgumentException>(() => rawReqProc.BuildUrl(parameters));

            Assert.Equal("QueryString", ex.ParamName);
        }
        public void GetParameters_Returns_Parameters()
        {
            var rawReqProc = new RawRequestProcessor<Raw>();
            Expression<Func<Raw, bool>> expression =
                raw =>
                    raw.QueryString == "/statuses/public_timeline.json";
            var lambdaExpression = expression as LambdaExpression;

            var queryParams = rawReqProc.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair<string, string>("QueryString", "/statuses/public_timeline.json")));
        }
        public void BuildUrl_Returns_Full_Url()
        {
            var rawReqProc = new RawRequestProcessor <Raw> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>
            {
                { "QueryString", "statuses/public_timeline.json" },
            };
            string expected = "https://api.twitter.com/1.1/statuses/public_timeline.json";

            Request req = rawReqProc.BuildUrl(parameters);

            Assert.Equal(expected, req.FullUrl);
        }
        public void BuildUrl_Resolves_Extra_Slash_Between_BaseUrl_And_QueryString()
        {
            string baseUrlWithTrailingSlash = "https://api.twitter.com/1.1/";
            string queryStringWithPrecedingSlash = "/statuses/public_timeline.json";

            var rawReqProc = new RawRequestProcessor<Raw> { BaseUrl = baseUrlWithTrailingSlash };
            var parameters = new Dictionary<string, string>
            {
                {"QueryString", queryStringWithPrecedingSlash},
            };
            string expected = "https://api.twitter.com/1.1/statuses/public_timeline.json";

            Request req = rawReqProc.BuildUrl(parameters);

            Assert.AreEqual(expected, req.FullUrl);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Lets you perform a query by specifying the raw URL and parameters yourself.
        /// Useful for when Twitter changes or adds new features before they are added to LINQ to Twitter.
        /// </summary>
        /// <param name="queryString">The segments that follow the base URL. i.e. "statuses/public_timeline.json" for a public status query</param>
        /// <param name="parameters">Querystring parameters that will be appended to the URL</param>
        /// <param name="callback">Async Callback used in Silverlight queries</param>
        /// <returns></returns>
        public static string ExecuteRaw(this TwitterContext ctx, string queryString, Dictionary<string, string> parameters, Action<TwitterAsyncResponse<string>> callback)
        {
            string rawUrl = ctx.BaseUrl.TrimEnd('/') + "/" + queryString.TrimStart('/');

            var reqProc = new RawRequestProcessor<Raw>();

            ITwitterExecute exec = ctx.TwitterExecutor;
            exec.AsyncCallback = callback;
            var results =
                exec.PostToTwitter(
                    rawUrl,
                    parameters,
                    response => reqProc.ProcessActionResult(response, HttpMethod.POST));

            return results;
        }
        public void BuildUrl_Resolves_Extra_Slash_Between_BaseUrl_And_QueryString()
        {
            string baseUrlWithTrailingSlash      = "https://api.twitter.com/1.1/";
            string queryStringWithPrecedingSlash = "/statuses/public_timeline.json";

            var rawReqProc = new RawRequestProcessor <Raw> {
                BaseUrl = baseUrlWithTrailingSlash
            };
            var parameters = new Dictionary <string, string>
            {
                { "QueryString", queryStringWithPrecedingSlash },
            };
            string expected = "https://api.twitter.com/1.1/statuses/public_timeline.json";

            Request req = rawReqProc.BuildUrl(parameters);

            Assert.Equal(expected, req.FullUrl);
        }
        public void BuildUrl_WithExtraSlashBetweenBaseUrlAndQueryString_StillWorks()
        {
            string baseUrlWithTrailingSlash      = "https://api.twitter.com/1.1/";
            string queryStringWithPrecedingSlash = "/statuses/public_timeline.json";

            var rawReqProc = new RawRequestProcessor <Raw> {
                BaseUrl = baseUrlWithTrailingSlash
            };
            var parameters = new Dictionary <string, string>
            {
                { nameof(Raw.QueryString), queryStringWithPrecedingSlash },
            };
            string expected = "https://api.twitter.com/1.1/statuses/public_timeline.json";

            Request req = rawReqProc.BuildUrl(parameters);

            Assert.AreEqual(expected, req.FullUrl);
        }
Ejemplo n.º 15
0
        public void RawRequestProcessor_Works_With_Actions()
        {
            var rawReqProc = new RawRequestProcessor<Raw>();

            Assert.IsAssignableFrom<IRequestProcessorWithAction<Raw>>(rawReqProc);
        }
Ejemplo n.º 16
0
        public void RawRequestProcessor_WorksWithActions()
        {
            var rawReqProc = new RawRequestProcessor <Raw>();

            Assert.IsInstanceOfType(rawReqProc, typeof(IRequestProcessorWithAction <Raw>));
        }
        public void ProcessIDResultsTest()
        {
            var rawReqProc = new RawRequestProcessor<Raw>();

            List<Raw> result = rawReqProc.ProcessResults(QueryResponse);

            Assert.AreEqual(QueryResponse, result.First().Response);
        }
Ejemplo n.º 18
0
        public void RawRequestProcessor_Works_With_Actions()
        {
            var rawReqProc = new RawRequestProcessor<Raw>();

            Assert.IsInstanceOfType(rawReqProc, typeof(IRequestProcessorWithAction<Raw>));
        }
Ejemplo n.º 19
0
        public void RawRequestProcessor_Works_With_Actions()
        {
            var rawReqProc = new RawRequestProcessor <Raw>();

            Assert.IsAssignableFrom <IRequestProcessorWithAction <Raw> >(rawReqProc);
        }