/// <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; }
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); }
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); }
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"))); }
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 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); }
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)); }
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); }