public async Task AccountSettingsTestsAsync()
        {
            if (!EndToEndTestConfig.ShouldRunEndToEndTests)
            {
                return;
            }

            var initialSettings = await _protectedClient.AccountSettings.GetAccountSettingsAsync();

            var newSettings = new UpdateAccountSettingsParameters
            {
                DisplayLanguage    = DisplayLanguages.Spanish,
                SleepTimeEnabled   = !initialSettings.SleepTimeEnabled,
                StartSleepHour     = 23,
                EndSleepHour       = 7,
                TimeZone           = TimeZoneFromTwitter.Bangkok.ToTZinfo(),
                TrendLocationWoeid = 580778
            };

            var updatedSettings = await _protectedClient.AccountSettings.UpdateAccountSettingsAsync(newSettings);

            var recoveredSettings = await _protectedClient.AccountSettings.UpdateAccountSettingsAsync(new UpdateAccountSettingsParameters
            {
                DisplayLanguage    = initialSettings.Language,
                TimeZone           = initialSettings.TimeZone.TzinfoName,
                SleepTimeEnabled   = initialSettings.SleepTimeEnabled,
                StartSleepHour     = initialSettings.StartSleepHour,
                EndSleepHour       = initialSettings.EndSleepHour,
                TrendLocationWoeid = initialSettings.TrendLocations.FirstOrDefault()?.WoeId ?? 1
            });

            // assert
            Assert.Equal(Language.Spanish, updatedSettings.Language);
            Assert.NotEqual(initialSettings.Language, updatedSettings.Language);
            Assert.Equal(initialSettings.Language, recoveredSettings.Language);

            Assert.Equal(TimeZoneFromTwitter.Bangkok.ToTZinfo(), updatedSettings.TimeZone.Name);
            Assert.NotEqual(initialSettings.TimeZone.Name, updatedSettings.TimeZone.Name);
            Assert.Equal(initialSettings.TimeZone.Name, recoveredSettings.TimeZone.Name);

            Assert.Equal(updatedSettings.SleepTimeEnabled, !initialSettings.SleepTimeEnabled);
            Assert.Equal(initialSettings.SleepTimeEnabled, recoveredSettings.SleepTimeEnabled);

            Assert.Equal(23, updatedSettings.StartSleepHour);
            Assert.NotEqual(initialSettings.StartSleepHour, updatedSettings.StartSleepHour);
            Assert.Equal(initialSettings.StartSleepHour, recoveredSettings.StartSleepHour);

            Assert.Equal(7, updatedSettings.EndSleepHour);
            Assert.NotEqual(initialSettings.StartSleepHour, updatedSettings.StartSleepHour);
            Assert.Equal(initialSettings.EndSleepHour, recoveredSettings.EndSleepHour);

            Assert.Equal(580778, updatedSettings.TrendLocations[0].WoeId);
            Assert.NotEqual(initialSettings.TrendLocations?.FirstOrDefault()?.WoeId, updatedSettings.TrendLocations[0].WoeId);

            if (initialSettings.TrendLocations != null)
            {
                Assert.Equal(initialSettings.TrendLocations[0].WoeId, recoveredSettings.TrendLocations[0].WoeId);
            }
        }
示例#2
0
        public async Task UpdateAccountSettings_ReturnsFromQueryExecutor()
        {
            // Arrange
            var controller    = CreateAccountSettingsController();
            var parameters    = new UpdateAccountSettingsParameters();
            var request       = A.Fake <ITwitterRequest>();
            var twitterResult = A.Fake <ITwitterResult <IAccountSettingsDTO> >();

            A.CallTo(() => _fakeAccountSettingsQueryExecutor.UpdateAccountSettings(parameters, request)).Returns(twitterResult);

            // Act
            var result = await controller.UpdateAccountSettings(parameters, request);

            // Assert
            Assert.Equal(result, twitterResult);
        }
        public async Task UpdateAccountSettings_ReturnsAccountUserDTOAsync()
        {
            // Arrange
            var queryExecutor = CreateAccountSettingsQueryExecutor();
            var parameters    = new UpdateAccountSettingsParameters();

            var url            = TestHelper.GenerateString();
            var request        = A.Fake <ITwitterRequest>();
            var expectedResult = A.Fake <ITwitterResult <IAccountSettingsDTO> >();

            A.CallTo(() => _fakeAccountSettingsQueryGenerator.GetUpdateAccountSettingsQuery(parameters)).Returns(url);
            A.CallTo(() => _fakeTwitterAccessor.ExecuteRequestAsync <IAccountSettingsDTO>(request)).Returns(expectedResult);

            // Act
            var result = await queryExecutor.UpdateAccountSettingsAsync(parameters, request);

            // Assert
            Assert.Equal(result, expectedResult);
            Assert.Equal(request.Query.Url, url);
            Assert.Equal(HttpMethod.POST, request.Query.HttpMethod);
        }
        public void GetUpdateAccountSettingsQuery_ReturnsExpectedQuery()
        {
            // arrange
            var queryGenerator = CreateAccountSettingsQueryGenerator();
            var parameters     = new UpdateAccountSettingsParameters
            {
                DisplayLanguage       = DisplayLanguages.Spanish,
                SleepTimeEnabled      = true,
                StartSleepHour        = 23,
                EndSleepHour          = 7,
                TimeZone              = TimeZoneFromTwitter.Bangkok.ToTZinfo(),
                TrendLocationWoeid    = 580778,
                CustomQueryParameters = { new Tuple <string, string>("hello", "world") }
            };

            // act
            var result = queryGenerator.GetUpdateAccountSettingsQuery(parameters);

            // assert
            Assert.Equal(result, $"https://api.twitter.com/1.1/account/settings.json?lang=es&time_zone=Asia%2FBangkok&sleep_time_enabled=true&start_sleep_time=23&end_sleep_time=07&trend_location_woeid=580778&hello=world");
        }