public Task <ITwitterResult> UpdateProfileBanner(IUpdateProfileBannerParameters parameters, ITwitterRequest request) { var query = _accountSettingsQueryGenerator.GetUpdateProfileBannerQuery(parameters); var banner = StringFormater.UrlEncode(Convert.ToBase64String(parameters.Binary)); var bannerHttpContent = new StringContent($"banner={banner}", Encoding.UTF8, "application/x-www-form-urlencoded"); request.Query.Url = query; request.Query.HttpMethod = HttpMethod.POST; request.Query.HttpContent = new ProgressableStreamContent(bannerHttpContent, parameters.UploadProgressChanged); request.Query.IsHttpContentPartOfQueryParams = true; request.Query.Timeout = parameters.Timeout ?? TimeSpan.FromMilliseconds(System.Threading.Timeout.Infinite); return(_twitterAccessor.ExecuteRequest(request)); }
public async Task UpdateProfileBanner_ReturnsAccountUserDTOAsync() { // Arrange var queryExecutor = CreateAccountSettingsQueryExecutor(); var parameters = new UpdateProfileBannerParameters(new byte[2]); var url = TestHelper.GenerateString(); var request = A.Fake <ITwitterRequest>(); var expectedResult = A.Fake <ITwitterResult>(); A.CallTo(() => _fakeAccountSettingsQueryGenerator.GetUpdateProfileBannerQuery(parameters)).Returns(url); A.CallTo(() => _fakeTwitterAccessor.ExecuteRequestAsync(A <ITwitterRequest> .Ignored)).Returns(expectedResult); // Act var result = await queryExecutor.UpdateProfileBannerAsync(parameters, request); // Assert Assert.Equal(result, expectedResult); Assert.True(request.Query.IsHttpContentPartOfQueryParams); Assert.Equal(request.Query.Url, url); Assert.Equal(HttpMethod.POST, request.Query.HttpMethod); }