public async Task ToHttpRequestTest()
        {
            HttpScriptInvocationContext testContext = new HttpScriptInvocationContext
            {
                Data     = new Dictionary <string, object>(),
                Metadata = new Dictionary <string, object>(),
            };

            testContext.Data.Add("randomDataKey", "randomDataValue");
            testContext.Metadata.Add("randomMetaDataKey", "randomMetaDataValue");

            string             expectedUri = "http://randomhost";
            HttpRequestMessage result      = testContext.ToHttpRequestMessage(expectedUri);

            string resultContent = await result.Content.ReadAsStringAsync();

            HttpScriptInvocationContext expected = JsonConvert.DeserializeObject <HttpScriptInvocationContext>(resultContent);

            Assert.Equal(result.RequestUri.ToString(), new Uri(expectedUri).ToString());
            Assert.Equal(result.Method, HttpMethod.Post);
            foreach (string key in testContext.Data.Keys)
            {
                Assert.Equal(testContext.Data[key], expected.Data[key]);
            }
            foreach (string key in testContext.Metadata.Keys)
            {
                Assert.Equal(testContext.Metadata[key], expected.Metadata[key]);
            }
        }