public Task <ITwitterResult <IUserDTO> > UpdateProfileImage(IUpdateProfileImageParameters parameters, ITwitterRequest request) { var query = _accountSettingsQueryGenerator.GetUpdateProfileImageQuery(parameters); var multipartQuery = new MultipartTwitterQuery(request.Query) { Url = query, HttpMethod = HttpMethod.POST, Binaries = new[] { parameters.Binary }, ContentId = "image", Timeout = parameters.Timeout ?? TimeSpan.FromMilliseconds(System.Threading.Timeout.Infinite), UploadProgressChanged = parameters.UploadProgressChanged, }; request.Query = multipartQuery; return(_twitterAccessor.ExecuteRequest <IUserDTO>(request)); }
public async Task UpdateProfileImage_ReturnsAccountUserDTOAsync() { // Arrange var queryExecutor = CreateAccountSettingsQueryExecutor(); var parameters = new UpdateProfileImageParameters(null); var url = TestHelper.GenerateString(); var request = A.Fake <ITwitterRequest>(); var expectedResult = A.Fake <ITwitterResult <IUserDTO> >(); A.CallTo(() => _fakeAccountSettingsQueryGenerator.GetUpdateProfileImageQuery(parameters)).Returns(url); A.CallTo(() => _fakeTwitterAccessor.ExecuteRequestAsync <IUserDTO>(A <ITwitterRequest> .That.Matches(x => x.Query is IMultipartTwitterQuery && x.Query.Url == url))) .Returns(expectedResult); // Act var result = await queryExecutor.UpdateProfileImageAsync(parameters, request); // Assert Assert.Equal(result, expectedResult); Assert.Equal(request.Query.Url, url); Assert.Equal(HttpMethod.POST, request.Query.HttpMethod); }