/// <summary>
        /// Helper for setup responce.
        /// </summary>
        protected ISetup <IHttpNetworkAdapter, Task <string> > SetupAdapterSendResponse(params HttpStatusCode[] statusCodes)
        {
            var index = 0;
            var setup = _adapter
                        .Setup(a => a.SendAsync(
                                   It.IsAny <string>(),
                                   "POST",
                                   It.IsAny <IDictionary <string, string> >(),
                                   It.IsAny <string>(),
                                   It.IsAny <CancellationToken>()));

            setup.Returns(() =>
            {
                var statusCode = statusCodes[index < statusCodes.Length ? index++ : statusCodes.Length - 1];
                return(statusCode == HttpStatusCode.OK
                    ? TaskExtension.GetCompletedTask("")
                    : TaskExtension.GetFaultedTask <string>(new HttpIngestionException("")
                {
                    StatusCode = (int)statusCode
                }));
            });
            return(setup);
        }