/// <summary>
        /// Adds a saved search to your twitter account
        /// </summary>
        /// <param name="query">Search query to add</param>
        /// <param name="callback">Async Callback used in Silverlight queries</param>
        /// <returns>SavedSearch object</returns>
        public static SavedSearch CreateSavedSearch(this TwitterContext ctx, string query, Action<TwitterAsyncResponse<SavedSearch>> callback)
        {
            if (string.IsNullOrEmpty(query))
            {
                throw new ArgumentException("query is required.", "query");
            }

            var savedSearchUrl = ctx.BaseUrl + "saved_searches/create.json";

            var reqProc = new SavedSearchRequestProcessor<SavedSearch>();

            ITwitterExecute exec = ctx.TwitterExecutor;
            exec.AsyncCallback = callback;
            var resultsJson =
                exec.PostToTwitter(
                    savedSearchUrl,
                    new Dictionary<string, string>
                    {
                        { "query", query }
                    },
                    response => reqProc.ProcessActionResult(response, SavedSearchAction.Create));

            SavedSearch result = reqProc.ProcessActionResult(resultsJson, SavedSearchAction.Create);
            return result;
        }
Exemple #2
0
        public void ProcessResultsTest()
        {
            SavedSearchRequestProcessor <SavedSearch> target = new SavedSearchRequestProcessor <SavedSearch>();
            XElement twitterResponse = XElement.Parse(m_testQueryResponse);
            IList    actual          = target.ProcessResults(twitterResponse);

            Assert.AreEqual(actual.Count, 3);
        }
        public void ProcessResults_Returns_Empty_Collection_When_Empty_Results()
        {
            var reqProc = new SavedSearchRequestProcessor <SavedSearch>();

            var searches = reqProc.ProcessResults(string.Empty);

            Assert.AreEqual(0, searches.Count);
        }
        public void ProcessResults_Returns_Empty_Collection_When_Empty_Results()
        {
            var reqProc = new SavedSearchRequestProcessor<SavedSearch>();

            var searches = reqProc.ProcessResults(string.Empty);

            Assert.AreEqual(0, searches.Count);
        }
        public void BuildUrl_Throws_On_Null_Parameters()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch>()
            {
                BaseUrl = "https://api.twitter.com/1.1/"
            };

            var ex = L2TAssert.Throws <ArgumentException>(() => searchReqProc.BuildUrl(null));

            Assert.AreEqual <string>("Type", ex.ParamName);
        }
 public void BuildSearchesUrlTest()
 {
     SavedSearchRequestProcessor<SavedSearch> target = new SavedSearchRequestProcessor<SavedSearch>() { BaseUrl = "http://twitter.com/" };
     Dictionary<string, string> parameters =
         new Dictionary<string, string>
         {
             { "Type", SavedSearchType.Searches.ToString() }
         };
     string expected = "http://twitter.com/saved_searches.xml";
     string actual = target.BuildURL(parameters);
     Assert.AreEqual(expected, actual);
 }
Exemple #7
0
        public void BuildUrl_Throws_On_Missing_Type()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch>()
            {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string> {
            };

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

            Assert.Equal <string>("Type", ex.ParamName);
        }
        public void BuildUrl_Constructs_SavedSearches_Url()
        {
            const string ExpectedUrl = "https://api.twitter.com/1.1/saved_searches/list.json";
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string>
            {
                { "Type", SavedSearchType.Searches.ToString() }
            };

            Request req = searchReqProc.BuildUrl(parameters);

            Assert.Equal(ExpectedUrl, req.FullUrl);
        }
        public void BuildUrl_Show_Throws_On_Missing_ID()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>
            {
                { "Type", SavedSearchType.Show.ToString() }
            };

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

            Assert.AreEqual("ID", ex.ParamName);
        }
        public void BuildUrl_Constructs_SavedSearches_Url()
        {
            const string ExpectedUrl   = "https://api.twitter.com/1.1/saved_searches/list.json";
            var          searchReqProc = new SavedSearchRequestProcessor <SavedSearch> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>
            {
                { "Type", SavedSearchType.Searches.ToString() }
            };

            Request req = searchReqProc.BuildUrl(parameters);

            Assert.AreEqual(ExpectedUrl, req.FullUrl);
        }
Exemple #11
0
        public void BuildSearchesUrlTest()
        {
            SavedSearchRequestProcessor <SavedSearch> target = new SavedSearchRequestProcessor <SavedSearch>()
            {
                BaseUrl = "http://twitter.com/"
            };
            Dictionary <string, string> parameters =
                new Dictionary <string, string>
            {
                { "Type", SavedSearchType.Searches.ToString() }
            };
            string expected = "http://twitter.com/saved_searches.xml";
            string actual   = target.BuildURL(parameters);

            Assert.AreEqual(expected, actual);
        }
        public void ProcessResults_Parses_Show_Response()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch> { Type = SavedSearchType.Show };

            var searches = searchReqProc.ProcessResults(ShowResponse);

            Assert.IsNotNull(searches);
            Assert.IsNotNull(searches.SingleOrDefault());
            var search = searches.Single();
            Assert.IsNotNull(search);
            Assert.AreEqual("#LinqToTwitter", search.Query);
            Assert.AreEqual("#LinqToTwitter", search.Name);
            Assert.AreEqual(0, search.Position);
            Assert.AreEqual(3275867ul, search.IDResponse);
            Assert.AreEqual(new DateTime(2009, 12, 18, 4, 17, 24), search.CreatedAt);
        }
        public void ProcessResults_Parses_Searches_Response()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch> { Type = SavedSearchType.Searches };

            var searches = searchReqProc.ProcessResults(SearchesResponse);

            Assert.NotNull(searches);
            Assert.Equal(2, searches.Count);
            var search = searches.First();
            Assert.NotNull(search);
            Assert.Equal("#LinqToTwitter", search.Query);
            Assert.Equal("#LinqToTwitter", search.Name);
            Assert.Equal(0, search.Postition);
            Assert.Equal("3275867", search.IDString);
            Assert.Equal(new DateTime(2009, 12, 18, 4, 17, 24), search.CreatedAt);
        }
        public void GetParameters_Handles_Input_Parameters()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch> { BaseUrl = "https://api.twitter.com/1.1/" };
            Expression<Func<SavedSearch, bool>> expression =
                search =>
                    search.Type == SavedSearchType.Show &&
                    search.ID == 123;
            var lambdaExpression = expression as LambdaExpression;

            var queryParams = searchReqProc.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair<string, string>("Type", ((int)SavedSearchType.Show).ToString())));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair<string, string>("ID", "123")));
        }
Exemple #15
0
        public void NullParametersTest()
        {
            SavedSearchRequestProcessor <SavedSearch> target = new SavedSearchRequestProcessor <SavedSearch>()
            {
                BaseUrl = "http://twitter.com/"
            };
            Dictionary <string, string> parameters = null;
            string actual;

            try
            {
                actual = target.BuildURL(parameters);
                Assert.Fail("Expected ArgumentException.");
            }
            catch (ArgumentException ae)
            {
                Assert.AreEqual <string>("Type", ae.ParamName);
            }
        }
Exemple #16
0
        public void ProcessResults_Parses_Searches_Response()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch> {
                Type = SavedSearchType.Searches
            };

            var searches = searchReqProc.ProcessResults(SearchesResponse);

            Assert.NotNull(searches);
            Assert.Equal(2, searches.Count);
            var search = searches.First();

            Assert.NotNull(search);
            Assert.Equal("#LinqToTwitter", search.Query);
            Assert.Equal("#LinqToTwitter", search.Name);
            Assert.Equal(0, search.Postition);
            Assert.Equal("3275867", search.IDString);
            Assert.Equal(new DateTime(2009, 12, 18, 4, 17, 24), search.CreatedAt);
        }
        public void ProcessResults_Parses_Show_Response()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch> {
                Type = SavedSearchType.Show
            };

            var searches = searchReqProc.ProcessResults(ShowResponse);

            Assert.IsNotNull(searches);
            Assert.IsNotNull(searches.SingleOrDefault());
            var search = searches.Single();

            Assert.IsNotNull(search);
            Assert.AreEqual("#LinqToTwitter", search.Query);
            Assert.AreEqual("#LinqToTwitter", search.Name);
            Assert.AreEqual(0, search.Position);
            Assert.AreEqual(3275867ul, search.IDResponse);
            Assert.AreEqual(new DateTime(2009, 12, 18, 4, 17, 24), search.CreatedAt);
        }
        public void GetParameters_Handles_Input_Parameters()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            Expression <Func <SavedSearch, bool> > expression =
                search =>
                search.Type == SavedSearchType.Show &&
                search.ID == 123;
            var lambdaExpression = expression as LambdaExpression;

            var queryParams = searchReqProc.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("Type", ((int)SavedSearchType.Show).ToString())));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("ID", "123")));
        }
        /// <summary>
        /// Adds a saved search to your twitter account
        /// </summary>
        /// <param name="query">Search query to add</param>
        /// <returns>SavedSearch object</returns>
        public async Task<SavedSearch> CreateSavedSearchAsync(string query, CancellationToken cancelToken = default(CancellationToken))
        {
            if (string.IsNullOrWhiteSpace(query))
                throw new ArgumentException("query is required.", "query");

            var savedSearchUrl = BaseUrl + "saved_searches/create.json";

            var reqProc = new SavedSearchRequestProcessor<SavedSearch>();

            RawResult =
                await TwitterExecutor.PostToTwitterAsync<SavedSearch>(
                    savedSearchUrl,
                    new Dictionary<string, string>
                    {
                        { "query", query }
                    },
                    cancelToken)
                    .ConfigureAwait(false);

            return reqProc.ProcessActionResult(RawResult, SavedSearchAction.Create);
        }
Exemple #20
0
        public void GetParametersTest()
        {
            SavedSearchRequestProcessor <SavedSearch> target = new SavedSearchRequestProcessor <SavedSearch>()
            {
                BaseUrl = "http://twitter.com/"
            };
            Expression <Func <SavedSearch, bool> > expression =
                search =>
                search.Type == SavedSearchType.Show &&
                search.ID == "123";
            LambdaExpression lambdaExpression = expression as LambdaExpression;

            var queryParams = target.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("Type", ((int)SavedSearchType.Show).ToString())));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("ID", "123")));
        }
        /// <summary>
        /// Adds a saved search to your twitter account
        /// </summary>
        /// <param name="id">ID of saved search</param>
        /// <param name="callback">Async Callback used in Silverlight queries</param>
        /// <returns>SavedSearch object</returns>
        public async Task<SavedSearch> DestroySavedSearchAsync(ulong id, CancellationToken cancelToken = default(CancellationToken))
        {
            if (id == 0)
                throw new ArgumentException("Invalid Saved Search ID: " + id, "id");

            var savedSearchUrl = BaseUrl + "saved_searches/destroy/" + id + ".json";

            var reqProc = new SavedSearchRequestProcessor<SavedSearch>();

            RawResult =
                await TwitterExecutor.PostToTwitterAsync<SavedSearch>(
                    savedSearchUrl,
                    new Dictionary<string, string>(),
                    cancelToken)
                    .ConfigureAwait(false);

            SavedSearch result = reqProc.ProcessActionResult(RawResult, SavedSearchAction.Destroy);
            result.ID = id;

            return result;
        }
        /// <summary>
        /// Adds a saved search to your twitter account
        /// </summary>
        /// <param name="id">ID of saved search</param>
        /// <param name="callback">Async Callback used in Silverlight queries</param>
        /// <returns>SavedSearch object</returns>
        public static SavedSearch DestroySavedSearch(this TwitterContext ctx, int id, Action<TwitterAsyncResponse<SavedSearch>> callback)
        {
            if (id < 1)
            {
                throw new ArgumentException("Invalid Saved Search ID: " + id, "id");
            }

            var savedSearchUrl = ctx.BaseUrl + "saved_searches/destroy/" + id + ".json";

            var reqProc = new SavedSearchRequestProcessor<SavedSearch>();

            ITwitterExecute exec = ctx.TwitterExecutor;
            exec.AsyncCallback = callback;
            var resultsJson =
                exec.PostToTwitter(
                    savedSearchUrl,
                    new Dictionary<string, string>(),
                    response => reqProc.ProcessActionResult(response, SavedSearchAction.Destroy));

            SavedSearch result = reqProc.ProcessActionResult(resultsJson, SavedSearchAction.Destroy);
            result.ID = id.ToString();

            return result;
        }
        public void BuildUrl_Throws_On_Missing_Type()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch>() { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string> { };

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

            Assert.AreEqual<string>("Type", ex.ParamName);
        }
        public void SavedSearchRequestProcessor_Works_On_Json_Format_Data()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch>();

            Assert.IsInstanceOfType(searchReqProc, typeof(IRequestProcessorWantsJson));
        }
        public void SavedSearchRequestProcessor_Works_On_Json_Format_Data()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch>();

            Assert.IsInstanceOfType(searchReqProc, typeof(IRequestProcessorWantsJson));
        }
Exemple #26
0
        public void SavedSearchRequestProcessor_Works_On_Json_Format_Data()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch>();

            Assert.IsAssignableFrom <IRequestProcessorWantsJson>(searchReqProc);
        }
        public void SavedSearchRequestProcessor_Handles_Actions()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch>();

            Assert.IsInstanceOfType(searchReqProc, typeof(IRequestProcessorWithAction<SavedSearch>));
        }
        public void SavedSearchRequestProcessor_Works_On_Json_Format_Data()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch>();

            Assert.IsAssignableFrom<IRequestProcessorWantsJson>(searchReqProc);
        }
 public void ProcessResultsTest()
 {
     SavedSearchRequestProcessor<SavedSearch> target = new SavedSearchRequestProcessor<SavedSearch>();
     XElement twitterResponse = XElement.Parse(m_testQueryResponse);
     IList actual = target.ProcessResults(twitterResponse);
     Assert.AreEqual(actual.Count, 3);
 }
 public void NullParametersTest()
 {
     SavedSearchRequestProcessor<SavedSearch> target = new SavedSearchRequestProcessor<SavedSearch>() { BaseUrl = "http://twitter.com/" };
     Dictionary<string, string> parameters = null;
     string actual;
     try
     {
         actual = target.BuildURL(parameters);
         Assert.Fail("Expected ArgumentException.");
     }
     catch (ArgumentException ae)
     {
         Assert.AreEqual<string>("Type", ae.ParamName);
     }
 }
        public void GetParametersTest()
        {
            SavedSearchRequestProcessor<SavedSearch> target = new SavedSearchRequestProcessor<SavedSearch>() { BaseUrl = "http://twitter.com/" };
            Expression<Func<SavedSearch, bool>> expression =
                search =>
                    search.Type == SavedSearchType.Show &&
                    search.ID == "123";
            LambdaExpression lambdaExpression = expression as LambdaExpression;

            var queryParams = target.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair<string, string>("Type", ((int)SavedSearchType.Show).ToString())));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair<string, string>("ID", "123")));
        }
        public void BuildUrl_Show_Throws_On_Missing_ID()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string>
            {
                { "Type", SavedSearchType.Show.ToString() }
            };

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

            Assert.Equal("ID", ex.ParamName);
        }
        public void SavedSearchRequestProcessor_Handles_Actions()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch>();

            Assert.IsInstanceOfType(searchReqProc, typeof(IRequestProcessorWithAction <SavedSearch>));
        }
        public void SavedSearchRequestProcessor_Handles_Actions()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch>();

            Assert.IsAssignableFrom<IRequestProcessorWithAction<SavedSearch>>(searchReqProc);
        }
        public void BuildUrl_Throws_On_Null_Parameters()
        {
            var searchReqProc = new SavedSearchRequestProcessor<SavedSearch>() { BaseUrl = "https://api.twitter.com/1.1/" };

            var ex = Assert.Throws<ArgumentException>(() => searchReqProc.BuildUrl(null));

            Assert.Equal<string>("Type", ex.ParamName);
        }
        public void SavedSearchRequestProcessor_Handles_Actions()
        {
            var searchReqProc = new SavedSearchRequestProcessor <SavedSearch>();

            Assert.IsAssignableFrom <IRequestProcessorWithAction <SavedSearch> >(searchReqProc);
        }