public async Task GetResponseAsync_ShouldGetResponseFromServer()
        {
            // Act
            var response = await _webRequester.GetResponseAsync("/");

            // Assert
            response.IsSuccessStatusCode.ShouldBeTrue();
        }
Beispiel #2
0
        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);
        }