public void ProcessResults_Returns_Empty_Collection_When_Empty_Results()
        {
            var reqProc = new AccountRequestProcessor<Account> { BaseUrl = "https://api.twitter.com/1.1/" };

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

            Assert.AreEqual(0, accts.Count);
        }
Exemple #2
0
        public void BuildUrl_Throws_With_Null_Parameters()
        {
            var acctReqProc = new AccountRequestProcessor <Account> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };

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

            Assert.AreEqual("Type", ex.ParamName);
        }
        public void ProcessResults_Returns_Empty_Collection_When_Empty_Results()
        {
            var reqProc = new AccountRequestProcessor <Account> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };

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

            Assert.AreEqual(0, accts.Count);
        }
        public void ProcessResults_Handles_VerifyCredentials()
        {
            var target = new AccountRequestProcessor<Account> { Type = AccountType.VerifyCredentials };

            List<Account> actual = target.ProcessResults(TestVerifyCredentialsQueryResponse);

            var acct = actual.Cast<Account>().ToList().FirstOrDefault();
            Assert.IsNotNull(acct);
            Assert.AreEqual("Joe Mayo", acct.User.Name);
        }
Exemple #5
0
        public void BuildUrl_Throws_When_Type_Not_Provided()
        {
            var acctReqProc = new AccountRequestProcessor <Account> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>();

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

            Assert.AreEqual("Type", ex.ParamName);
        }
        public void GetParametersTest()
        {
            AccountRequestProcessor <Account>  target     = new AccountRequestProcessor <Account>();
            Expression <Func <Account, bool> > expression = acct => acct.Type == AccountType.RateLimitStatus;
            LambdaExpression lambdaExpression             = expression as LambdaExpression;

            var queryParams = target.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("Type", ((int)AccountType.RateLimitStatus).ToString())));
        }
Exemple #7
0
        public void ProcessResults_Handles_VerifyCredentials()
        {
            var target = new AccountRequestProcessor <Account> {
                Type = AccountType.VerifyCredentials
            };

            List <Account> actual = target.ProcessResults(TestVerifyCredentialsQueryResponse);

            var acct = actual.Cast <Account>().ToList().FirstOrDefault();

            Assert.IsNotNull(acct);
            Assert.AreEqual("Joe Mayo", acct.User.Name);
        }
Exemple #8
0
        public void BuildUrl_Returns_Settings_Url()
        {
            const string ExpectedUrl = "https://api.twitter.com/1.1/account/settings.json";
            var          acctReqProc = new AccountRequestProcessor <Account> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters = new Dictionary <string, string>
            {
                { "Type", ((int)AccountType.Settings).ToString(CultureInfo.InvariantCulture) }
            };

            Request req = acctReqProc.BuildUrl(parameters);

            Assert.AreEqual(ExpectedUrl, req.FullUrl);
        }
        public void BuildRateLimitStatusURLTest()
        {
            AccountRequestProcessor <Account> target = new AccountRequestProcessor <Account>()
            {
                BaseUrl = "http://twitter.com/"
            };
            Dictionary <string, string> parameters =
                new Dictionary <string, string>
            {
                { "Type", ((int)AccountType.RateLimitStatus).ToString() }
            };
            string expected = "http://twitter.com/account/rate_limit_status.xml";
            string actual;

            actual = target.BuildURL(parameters);
            Assert.AreEqual(expected, actual);
        }
        public void BuildVerifyCredentialsStatusURLTest()
        {
            AccountRequestProcessor target = new AccountRequestProcessor()
            {
                BaseUrl = "http://twitter.com/"
            };
            Dictionary <string, string> parameters =
                new Dictionary <string, string>
            {
                { "Type", ((int)AccountType.VerifyCredentials).ToString() }
            };
            string expected = "http://twitter.com/account/verify_credentials.xml";
            string actual;

            actual = target.BuildURL(parameters);
            Assert.AreEqual(expected, actual);
        }
Exemple #11
0
        public void HandleSettingsResponse_Converts_Settings_To_Account()
        {
            var acctReqProc = new AccountRequestProcessor <Account>();

            Account acct = acctReqProc.HandleSettingsResponse(TestSettingsResponse);

            Assert.IsNotNull(acct);
            Assert.IsNotNull(acct.Settings);
            var settings = acct.Settings;

            Assert.IsNotNull(settings.TimeZone);
            var timeZone = settings.TimeZone;

            Assert.AreEqual("Mountain Time (US & Canada)", timeZone.Name);
            Assert.AreEqual(-21600, timeZone.UtcOffset);
            Assert.AreEqual("America/Denver", timeZone.TzInfoName);
            Assert.AreEqual("Mayoster", settings.ScreenName);
            Assert.AreEqual(true, settings.AlwaysUseHttps);
            Assert.AreEqual(true, settings.UseCookiePersonalization);
            Assert.IsNotNull(settings.SleepTime);
            var sleepTime = settings.SleepTime;

            Assert.AreEqual(true, sleepTime.Enabled);
            Assert.AreEqual(20, sleepTime.StartHour);
            Assert.AreEqual(0, sleepTime.EndHour);
            Assert.AreEqual(true, settings.GeoEnabled);
            Assert.AreEqual("en", settings.Language);
            Assert.AreEqual(true, settings.DiscoverableByEmail);
            Assert.AreEqual(true, settings.DiscoverableByMobilePhone);
            Assert.AreEqual(true, settings.DisplaySensitiveMedia);
            Assert.AreEqual("all", settings.AllowContributorRequest);
            Assert.AreEqual("following", settings.AllowDmsFrom);
            Assert.AreEqual("following", settings.AllowDmGroupsFrom);
            Assert.IsNotNull(settings.TrendLocation);
            var trendLocation = settings.TrendLocation;

            Assert.AreEqual("Las Vegas", trendLocation.Name);
            Assert.AreEqual("US", trendLocation.CountryCode);
            Assert.AreEqual("http://where.yahooapis.com/v1/place/2436704", trendLocation.Url);
            Assert.AreEqual(2436704, trendLocation.WoeID);
            Assert.AreEqual("Town", trendLocation.PlaceTypeName);
            Assert.AreEqual(7, trendLocation.PlaceTypeNameCode);
            Assert.AreEqual("23424977", trendLocation.ParentID);
            Assert.AreEqual("United States", trendLocation.Country);
        }
        public void BuildUrl_Constructs_VerifyCredentials_Url()
        {
            const string ExpectedUrl = "https://api.twitter.com/1.1/account/verify_credentials.json?skip_status=true&include_entities=false";
            var          acctReqProc = new AccountRequestProcessor <Account> {
                BaseUrl = "https://api.twitter.com/1.1/"
            };
            var parameters =
                new Dictionary <string, string>
            {
                { "Type", ((int)AccountType.VerifyCredentials).ToString(CultureInfo.InvariantCulture) },
                { "SkipStatus", true.ToString() },
                { "IncludeEntities", false.ToString() }
            };

            Request req = acctReqProc.BuildUrl(parameters);

            Assert.AreEqual(ExpectedUrl, req.FullUrl);
        }
        public void HandleSettingsResponse_Converts_Settings_To_Account()
        {
            var acctReqProc = new AccountRequestProcessor <Account>();

            Account acct = acctReqProc.HandleSettingsResponse(TestSettingsResponse);

            Assert.NotNull(acct);
            Assert.Equal(23424977, acct.Settings.TrendLocation.WoeID);
            Assert.Equal("United States", acct.Settings.TrendLocation.Name);
            Assert.Equal(12, acct.Settings.TrendLocation.PlaceTypeNameCode);
            Assert.Equal("Country", acct.Settings.TrendLocation.PlaceTypeName);
            Assert.Equal("US", acct.Settings.TrendLocation.CountryCode);
            Assert.Equal("United States", acct.Settings.TrendLocation.Country);
            Assert.Equal("http://where.yahooapis.com/v1/place/23424977", acct.Settings.TrendLocation.Url);
            Assert.Equal(true, acct.Settings.GeoEnabled);
            Assert.Equal(false, acct.Settings.SleepTime.Enabled);
            Assert.Equal(0, acct.Settings.SleepTime.StartHour);
            Assert.Equal(0, acct.Settings.SleepTime.EndHour);
        }
        public void HandleSettingsResponse_Converts_Settings_To_Account()
        {
            var acctReqProc = new AccountRequestProcessor<Account>();

            Account acct = acctReqProc.HandleSettingsResponse(TestSettingsResponse);

            Assert.NotNull(acct);
            Assert.Equal(23424977, acct.Settings.TrendLocation.WoeID);
            Assert.Equal("United States", acct.Settings.TrendLocation.Name);
            Assert.Equal(12, acct.Settings.TrendLocation.PlaceTypeNameCode);
            Assert.Equal("Country", acct.Settings.TrendLocation.PlaceTypeName);
            Assert.Equal("US", acct.Settings.TrendLocation.CountryCode);
            Assert.Equal("United States", acct.Settings.TrendLocation.Country);
            Assert.Equal("http://where.yahooapis.com/v1/place/23424977", acct.Settings.TrendLocation.Url);
            Assert.Equal(true, acct.Settings.GeoEnabled);
            Assert.Equal(false, acct.Settings.SleepTime.Enabled);
            Assert.Equal(0, acct.Settings.SleepTime.StartHour);
            Assert.Equal(0, acct.Settings.SleepTime.EndHour);
        }
        public void NullParametersTest()
        {
            AccountRequestProcessor <Account> target = new AccountRequestProcessor <Account>()
            {
                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_Retains_Original_Input_Parameters()
        {
            var acctReqProc = new AccountRequestProcessor <Account>
            {
                Type            = AccountType.VerifyCredentials,
                SkipStatus      = true,
                IncludeEntities = true
            };

            var accounts = acctReqProc.ProcessResults(TestVerifyCredentialsQueryResponse);

            Assert.IsNotNull(accounts);
            Assert.IsNotNull(accounts.SingleOrDefault());
            var account = accounts.Single();

            Assert.AreEqual(AccountType.VerifyCredentials, account.Type);
            Assert.IsTrue(account.SkipStatus);
            Assert.IsTrue(account.IncludeEntities);
        }
        public void HandleSettingsResponse_Converts_Settings_To_Account()
        {
            var acctReqProc = new AccountRequestProcessor<Account>();

            Account acct = acctReqProc.HandleSettingsResponse(TestSettingsResponse);

            Assert.IsNotNull(acct);
            Assert.IsNotNull(acct.Settings);
            var settings = acct.Settings;
            Assert.IsNotNull(settings.TimeZone);
            var timeZone = settings.TimeZone;
            Assert.AreEqual("Mountain Time (US & Canada)", timeZone.Name);
            Assert.AreEqual(-21600, timeZone.UtcOffset);
            Assert.AreEqual("America/Denver", timeZone.TzInfoName);
            Assert.AreEqual("Mayoster", settings.ScreenName);
            Assert.AreEqual(true, settings.AlwaysUseHttps);
            Assert.AreEqual(true, settings.UseCookiePersonalization);
            Assert.IsNotNull(settings.SleepTime);
            var sleepTime = settings.SleepTime;
            Assert.AreEqual(true, sleepTime.Enabled);
            Assert.AreEqual(20, sleepTime.StartHour);
            Assert.AreEqual(0, sleepTime.EndHour);
            Assert.AreEqual(true, settings.GeoEnabled);
            Assert.AreEqual("en", settings.Language);
            Assert.AreEqual(true, settings.DiscoverableByEmail);
            Assert.AreEqual(true, settings.DiscoverableByMobilePhone);
            Assert.AreEqual(true, settings.DisplaySensitiveMedia);
            Assert.AreEqual("all", settings.AllowContributorRequest);
            Assert.AreEqual("following", settings.AllowDmsFrom);
            Assert.AreEqual("following", settings.AllowDmGroupsFrom);
            Assert.IsNotNull(settings.TrendLocation);
            var trendLocation = settings.TrendLocation;
            Assert.AreEqual("Las Vegas", trendLocation.Name);
            Assert.AreEqual("US", trendLocation.CountryCode);
            Assert.AreEqual("http://where.yahooapis.com/v1/place/2436704", trendLocation.Url);
            Assert.AreEqual(2436704, trendLocation.WoeID);
            Assert.AreEqual("Town", trendLocation.PlaceTypeName);
            Assert.AreEqual(7, trendLocation.PlaceTypeNameCode);
            Assert.AreEqual("23424977", trendLocation.ParentID);
            Assert.AreEqual("United States", trendLocation.Country);
        }
        public void GetParameters_Handles_Input_Params()
        {
            var target = new AccountRequestProcessor <Account>();
            Expression <Func <Account, bool> > expression =
                acct =>
                acct.Type == AccountType.Settings &&
                acct.SkipStatus == true &&
                acct.IncludeEntities == true;
            var lambdaExpression = expression as LambdaExpression;

            var queryParams = target.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("Type", ((int)AccountType.Settings).ToString(CultureInfo.InvariantCulture))));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("SkipStatus", "True")));
            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair <string, string>("IncludeEntities", "True")));
        }
        public void GetParameters_Handles_Input_Params()
        {
            var target = new AccountRequestProcessor<Account>();
            Expression<Func<Account, bool>> expression = 
                acct => 
                    acct.Type == AccountType.Settings &&
                    acct.SkipStatus == true &&
                    acct.IncludeEntities == true;
            var lambdaExpression = expression as LambdaExpression;

            var queryParams = target.GetParameters(lambdaExpression);

            Assert.True(
                queryParams.Contains(
                    new KeyValuePair<string, string>("Type", ((int)AccountType.Settings).ToString(CultureInfo.InvariantCulture))));
            Assert.True(
                queryParams.Contains(
                    new KeyValuePair<string, string>("SkipStatus", "True")));
            Assert.True(
                queryParams.Contains(
                    new KeyValuePair<string, string>("IncludeEntities", "True")));
        }
        /// <summary>
        /// Updates user's account settings
        /// </summary>
        /// <param name="trendLocationWeoid">WEOID for Trend Location the user is interested in.</param>
        /// <param name="sleepTimeEnabled">Turn on time periods when notifications won't be sent.</param>
        /// <param name="startSleepTime">Don't send notifications at this time or later this time. (hour from 00 to 23)</param>
        /// <param name="endSleepTime">Start sending notifications again after this time. (hour from 00 to 23)</param>
        /// <param name="timeZone">User's time zone.</param>
        /// <param name="lang">User's language.</param>
        /// <returns>Account information with Settings property populated.</returns>
        public async Task<Account> UpdateAccountSettingsAsync(int? trendLocationWoeid, bool? sleepTimeEnabled, int? startSleepTime, int? endSleepTime, string timeZone, string lang, CancellationToken cancelToken = default(CancellationToken))
        {
            var accountUrl = BaseUrl + "account/settings.json";

            if (trendLocationWoeid == null &&
                sleepTimeEnabled == null &&
                startSleepTime == null &&
                endSleepTime == null &&
                string.IsNullOrWhiteSpace(timeZone) &&
                string.IsNullOrWhiteSpace(lang))
                throw new ArgumentException("At least one parameter must be provided as arguments, but none are specified.", NoInputParam);

            var reqProc = new AccountRequestProcessor<Account>();
            var parameters = new Dictionary<string, string>
                    {
                        { "time_zone", timeZone },
                        { "lang", lang }
                    };

            if (trendLocationWoeid != null)
                parameters.Add("trend_location_woeid", trendLocationWoeid.ToString());
            if (sleepTimeEnabled != null)
                parameters.Add("sleep_time_enabled", sleepTimeEnabled.ToString().ToLower());
            if (startSleepTime != null)
                parameters.Add("start_sleep_time", startSleepTime.ToString());
            if (endSleepTime != null)
                parameters.Add("end_sleep_time", endSleepTime.ToString());

            RawResult =
                await TwitterExecutor.PostToTwitterAsync<Account>(
                    accountUrl,
                    parameters,
                    cancelToken)
                    .ConfigureAwait(false);

            return reqProc.ProcessActionResult(RawResult, AccountAction.Settings);
        }
        public void ProcessResultsForEndSessionTest()
        {
            AccountRequestProcessor<Account> target = new AccountRequestProcessor<Account>();
            XElement twitterResponse = XElement.Parse(m_testEndSessionResponse);
            IList actual = target.ProcessResults(twitterResponse);
            var acct = actual.Cast<Account>().ToList().FirstOrDefault();

            Assert.AreEqual("Logged out.", acct.EndSessionStatus.Error);
        }
 public void NullParametersTest()
 {
     AccountRequestProcessor<Account> target = new AccountRequestProcessor<Account>() { 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 BuildUrl_Throws_With_Null_Parameters()
        {
            var acctReqProc = new AccountRequestProcessor<Account> { BaseUrl = "https://api.twitter.com/1.1/" };

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

            Assert.AreEqual("Type", ex.ParamName);
        }
        public void ProcessResults_Retains_Original_Input_Parameters()
        {
            var acctReqProc = new AccountRequestProcessor<Account>
            {
                Type = AccountType.VerifyCredentials,
                SkipStatus = true,
                IncludeEntities = true
            };

            var accounts = acctReqProc.ProcessResults(TestVerifyCredentialsQueryResponse);

            Assert.IsNotNull(accounts);
            Assert.IsNotNull(accounts.SingleOrDefault());
            var account = accounts.Single();
            Assert.AreEqual(AccountType.VerifyCredentials, account.Type);
            Assert.IsTrue(account.SkipStatus);
            Assert.IsTrue(account.IncludeEntities);
        }
        public void BuildUrl_Returns_Settings_Url()
        {
            const string ExpectedUrl = "https://api.twitter.com/1.1/account/settings.json";
            var acctReqProc = new AccountRequestProcessor<Account> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string>
                {
                        { "Type", ((int)AccountType.Settings).ToString(CultureInfo.InvariantCulture) }
                };

            Request req = acctReqProc.BuildUrl(parameters);

            Assert.AreEqual(ExpectedUrl, req.FullUrl);
        }
        public void BuildUrl_Throws_When_Type_Not_Provided()
        {
            var acctReqProc = new AccountRequestProcessor<Account> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters = new Dictionary<string, string>();

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

            Assert.AreEqual("Type", ex.ParamName);
        }
        public void GetParametersTest()
        {
            AccountRequestProcessor<Account> target = new AccountRequestProcessor<Account>();
            Expression<Func<Account, bool>> expression = acct => acct.Type == AccountType.RateLimitStatus;
            LambdaExpression lambdaExpression = expression as LambdaExpression;

            var queryParams = target.GetParameters(lambdaExpression);

            Assert.IsTrue(
                queryParams.Contains(
                    new KeyValuePair<string, string>("Type", ((int)AccountType.RateLimitStatus).ToString())));
        }
        public void BuildUrl_Constructs_VerifyCredentials_Url()
        {
            const string ExpectedUrl = "https://api.twitter.com/1.1/account/verify_credentials.json?skip_status=true&include_entities=false";
            var acctReqProc = new AccountRequestProcessor<Account> { BaseUrl = "https://api.twitter.com/1.1/" };
            var parameters =
                new Dictionary<string, string>
                {
                        { "Type", ((int)AccountType.VerifyCredentials).ToString(CultureInfo.InvariantCulture) },
                        { "SkipStatus", true.ToString() },
                        { "IncludeEntities", false.ToString() }
                };

            Request req = acctReqProc.BuildUrl(parameters);

            Assert.AreEqual(ExpectedUrl, req.FullUrl);
        }
 public void ProcessResultsForInvalidValueTest()
 {
     AccountRequestProcessor<Account> target = new AccountRequestProcessor<Account>();
     XElement twitterResponse = XElement.Parse(m_testInvalidValueQueryResponse);
     IList actual = target.ProcessResults(twitterResponse);
     var acct = actual.Cast<Account>().ToList().FirstOrDefault();
 }
        /// <summary>
        /// Modify device information
        /// </summary>
        /// <param name="device">Which device to use.</param>
        /// <param name="includeEntitites">Set this to false to not add entitites to response. (default: true)</param>
        /// <param name="callback">Async Callback.</param>
        /// <returns></returns>
        public static Account UpdateDeliveryDevice(this TwitterContext ctx, DeviceType device, bool includeEntitites, Action<TwitterAsyncResponse<User>> callback)
        {
            var accountUrl = ctx.BaseUrl + "account/update_delivery_device.json";

            var reqProc = new AccountRequestProcessor<Account>();

            ITwitterExecute exec = ctx.TwitterExecutor;
            exec.AsyncCallback = callback;
            var resultsJson =
                exec.PostToTwitter(
                    accountUrl,
                    new Dictionary<string, string>
                    {
                        { "device", device.ToString().ToLower() },
                        { "include_entities", includeEntitites.ToString().ToLower() }
                    },
                    response => reqProc.ProcessActionResult(response, AccountAction.Settings));

            Account acct = reqProc.ProcessActionResult(resultsJson, AccountAction.Settings);
            return acct;
        }
        /// <summary>
        /// Updates user's account settings
        /// </summary>
        /// <param name="trendLocationWeoid">WEOID for Trend Location the user is interested in.</param>
        /// <param name="sleepTimeEnabled">Turn on time periods when notifications won't be sent.</param>
        /// <param name="startSleepTime">Don't send notifications at this time or later this time. (hour from 00 to 23)</param>
        /// <param name="endSleepTime">Start sending notifications again after this time. (hour from 00 to 23)</param>
        /// <param name="timeZone">User's time zone.</param>
        /// <param name="lang">User's language.</param>
        /// <param name="callback">Async Callback.</param>
        /// <returns>Account information with Settings property populated.</returns>
        public static Account UpdateAccountSettings(this TwitterContext ctx, int? trendLocationWoeid, bool? sleepTimeEnabled, int? startSleepTime, int? endSleepTime, string timeZone, string lang, Action<TwitterAsyncResponse<User>> callback)
        {
            var accountUrl = ctx.BaseUrl + "account/settings.json";

            if (trendLocationWoeid == null &&
                sleepTimeEnabled == null &&
                startSleepTime == null &&
                endSleepTime == null &&
                string.IsNullOrEmpty(timeZone) &&
                string.IsNullOrEmpty(lang))
            {
                throw new ArgumentException("At least one parameter must be provided as arguments, but none are specified.", NoInputParam);
            }

            var reqProc = new AccountRequestProcessor<Account>();

            ITwitterExecute exec = ctx.TwitterExecutor;
            exec.AsyncCallback = callback;
            var resultsJson =
                exec.PostToTwitter(
                    accountUrl,
                    new Dictionary<string, string>
                    {
                        { "trend_location_woeid", trendLocationWoeid.ToString() },
                        { "sleep_time_enabled", sleepTimeEnabled.ToString() },
                        { "start_sleep_time", startSleepTime.ToString() },
                        { "end_sleep_time", endSleepTime.ToString() },
                        { "time_zone", timeZone },
                        { "lang", lang }
                    },
                    response => reqProc.ProcessActionResult(response, AccountAction.Settings));

            Account acct = reqProc.ProcessActionResult(resultsJson, AccountAction.Settings);
            return acct;
        }
        public void ProcessResultsForRateLimitStatusTest()
        {
            AccountRequestProcessor<Account> target = new AccountRequestProcessor<Account>();
            XElement twitterResponse = XElement.Parse(m_testRateLimitStatusQueryResponse);
            IList actual = target.ProcessResults(twitterResponse);
            var acct = actual.Cast<Account>().ToList().FirstOrDefault();

            Assert.AreEqual(100, acct.RateLimitStatus.HourlyLimit);
        }
        public void ProcessResultsForVerifyCredentialsTest()
        {
            AccountRequestProcessor<Account> target = new AccountRequestProcessor<Account>();
            XElement twitterResponse = XElement.Parse(m_testVerifyCredentialsQueryResponse);
            IList actual = target.ProcessResults(twitterResponse);
            var acct = actual.Cast<Account>().ToList().FirstOrDefault();

            Assert.AreEqual("Joe Mayo", acct.User.Name);
        }
        /// <summary>
        /// Modify device information
        /// </summary>
        /// <param name="device">Which device to use.</param>
        /// <param name="includeEntitites">Set this to false to not add entitites to response. (default: true)</param>
        /// <returns></returns>
        public async Task<Account> UpdateDeliveryDeviceAsync(DeviceType device, bool? includeEntitites, CancellationToken cancelToken = default(CancellationToken))
        {
            var accountUrl = BaseUrl + "account/update_delivery_device.json";

            var reqProc = new AccountRequestProcessor<Account>();

            var parameters = new Dictionary<string, string>
                    {
                        { "device", device.ToString().ToLower() }
                    };

            if (includeEntitites != null)
                parameters.Add("include_entities", includeEntitites.ToString().ToLower());

            RawResult =
                await TwitterExecutor.PostToTwitterAsync<Account>(
                    accountUrl,
                    parameters,
                    cancelToken)
                    .ConfigureAwait(false);

            return reqProc.ProcessActionResult(RawResult, AccountAction.Settings);
        }
 public void BuildVerifyCredentialsStatusURLTest()
 {
     AccountRequestProcessor<Account> target = new AccountRequestProcessor<Account>() { BaseUrl = "http://twitter.com/" };
     Dictionary<string, string> parameters =
         new Dictionary<string, string>
         {
                 { "Type", ((int)AccountType.VerifyCredentials).ToString() }
         };
     string expected = "http://twitter.com/account/verify_credentials.xml";
     string actual;
     actual = target.BuildURL(parameters);
     Assert.AreEqual(expected, actual);
 }