protected Task <JsonResponse> MethodAsync(string url, string method, JsonDict body = null)
        {
            RequestAndResponse rar = _recording[_playbackIndex];

            RecordedRequest request = new RecordedRequest
            {
                Url    = url,
                Method = method,
                Body   = body
            };

            if (!request.Matches(rar.Request))
            {
                throw new Exception($"Actual request doesn't match recorded at index {_playbackIndex}");
            }

            _playbackIndex++;
            return(Task.FromResult(rar.Response));
        }