public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state)
        {
            PrepareResponse(this);

            if (ResponseStreamException != null)
            {
                throw ResponseStreamException;
            }
            _webResponseAsyncResult = new TestAsyncResult(callback, state, Latency);
            //we want to introduce latency on getting the response
            return _webResponseAsyncResult;
        }
 public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state)
 {
     if (RequestStreamException != null)
     {
         throw RequestStreamException;
     }
     _requestStreamAsyncResult = new TestAsyncResult(callback, state);
     return _requestStreamAsyncResult; //we don't want any latency for the request
 }