public void RequestDataStep_WithoutRequestData_CannotExtract()
        {
            var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(string.Empty));

            var mockHttpRequest = new Mock <HttpRequest>();

            mockHttpRequest.SetupGet(p => p.Body).Returns(memoryStream);

            var mockHttpContext = new Mock <HttpContext>();

            mockHttpContext.SetupGet(p => p.Request).Returns(mockHttpRequest.Object);

            var requestDataStep = new RequestDataStep();

            requestDataStep.CanExtract(mockHttpContext.Object).Should().BeFalse();
        }
        public async Task RequestDataStep_WithRequestData_OutputsDataString()
        {
            var jsonPayload  = JsonConvert.SerializeObject(new { Name = "Jamie" });
            var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonPayload));

            var expectedOutput = $"-d '{jsonPayload}'";

            var mockHttpRequest = new Mock <HttpRequest>();

            mockHttpRequest.SetupGet(p => p.Body).Returns(memoryStream);

            var mockHttpContext = new Mock <HttpContext>();

            mockHttpContext.SetupGet(p => p.Request).Returns(mockHttpRequest.Object);

            var requestDataStep = new RequestDataStep();

            var extractedData = await requestDataStep.ExtractAsync(mockHttpContext.Object);

            extractedData.Should().BeEquivalentTo(expectedOutput);
        }