public void TestAPIActionExecute()
{
string clientToken = "clientToken";
string accessToken = "accessToken";
string secret = "secret-shh";
var credential = new ClientCredential(clientToken, accessToken, secret);
var signer = new EdgeGridV1Signer();
string TestURIProtocol = "asdf";
WebRequest.RegisterPrefix(TestURIProtocol, new WebRequestTestCreate());
var request = (HttpWebRequestTest)WebRequest.Create("asdf://www.example.com/");
var response = request.CreateResponse(HttpStatusCode.OK);
request.NextResponse = response;
Assert.AreSame(signer.Execute(request, credential), response.GetResponseStream());
Assert.AreEqual(request.Method, "GET");
Assert.AreEqual(request.Headers.Count, 1);
request.Method = "PUT";
signer.Execute(request, credential);
Assert.AreEqual(request.ContentLength, 0);
request.Method = "POST";
var data = "Lorem ipsum dolor sit amet, an sea putant quaeque, homero aperiam te eos.".ToByteArray();
var uploadStream = new MemoryStream(data);
signer.Execute(request, credential, uploadStream);
Assert.AreEqual(request.ContentLength, 73);
CollectionAssert.AreEqual(request.RequestStream.ToArray(), data);
}