public async Task GetResponseAsync_ShouldGetResponseFromServer() { // Act var response = await _webRequester.GetResponseAsync("/"); // Assert response.IsSuccessStatusCode.ShouldBeTrue(); }
public virtual async Task <TResponse> ExecuteAsync( [NotNull] IProfile profile, [NotNull] string url, [NotNull] IResponseParser <TCommand, TResponse> parser, CancellationToken token) { if (profile == null) { throw new ArgumentNullException("profile"); } if (url == null) { throw new ArgumentNullException("url"); } if (parser == null) { throw new ArgumentNullException("parser"); } try { string response = await Requester.GetResponseAsync(url, profile, token); if (response == null) { return(default(TResponse)); } token.ThrowIfCancellationRequested(); return(await parser.ParseAsync(response, profile.Enigma)); } catch (Exception ex) { if (ex is KnownException || ex is OperationCanceledException) { throw; } throw new CommandException(string.Format("Command failed for profile {0}", profile.Name), ex); } }
public async Task <RequestDTO> MeasureRequestAsync(string url) { var stopwatch = new Stopwatch(); var request = new RequestDTO { Url = url }; var sentAt = DateTime.Now; _webRequester.CreateInstance(url); stopwatch.Start(); var webResponse = await _webRequester.GetResponseAsync(); stopwatch.Stop(); request.SentAt = sentAt; request.ResponseTime = new TimeSpan(stopwatch.ElapsedTicks); request.StatusCode = webResponse.StatusCode; return(request); }