コード例 #1
0
        public void AssertThatFormSentWithFile()
        {
            // ****************************************
            //
            // NOTE: Set your web form somewhere to actually test this!
            //
            // ****************************************

            var address      = "http://localhost/testform";
            var fileLocation = Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\Test_files\test_file.txt");
            var options      = new Options {
                Address = address
            };
            var formParams = new FormParameters()
            {
                InputName = "\"id\"", Value = "12345"
            };
            var formFileParams = new FormFileParameters()
            {
                InputName = "\"file\"", FileLocation = fileLocation
            };
            var parameters = new Parameters {
                FileParameteres = new[] { formFileParams }, FormParameters = new[] { formParams }
            };

            var result = SubmitForm.SendForm(parameters, options);
        }
コード例 #2
0
        public void AssertThatHttpRequestIsCorrectWithFile()
        {
            var handlerMock = new Mock <HttpMessageHandler>();

            Uri        actualHttpRequestUri     = null;
            HttpMethod actualHttpMethod         = null;
            string     actualHttpRequestContent = null;

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .Callback <HttpRequestMessage, CancellationToken>((httpRequestMessage, cancellationToken) =>
            {
                actualHttpRequestUri     = httpRequestMessage.RequestUri;
                actualHttpMethod         = httpRequestMessage.Method;
                actualHttpRequestContent = httpRequestMessage.Content
                                           .ReadAsStringAsync()
                                           .GetAwaiter()
                                           .GetResult();
            }
                                                              )
            // prepare the expected response of the mocked http call
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
            })
            .Verifiable();

            var address      = "http://localhost/testform";
            var fileLocation = Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\Test_files\test_file.txt");
            var options      = new Options {
                Address = address
            };
            var formParams = new FormParameters()
            {
                InputName = "\"id\"", Value = "12345"
            };
            var formFileParams = new FormFileParameters()
            {
                InputName = "\"file\"", FileLocation = fileLocation
            };
            var parameters = new Parameters {
                FileParameteres = new[] { formFileParams }, FormParameters = new[] { formParams }
            };

            var result = SubmitForm.SendFormWithHandler(handlerMock.Object, parameters, address);

            Assert.AreEqual(HttpStatusCode.OK, result.Result.StatusCode);

            var expectedUri = new Uri(address);

            Assert.AreEqual(expectedUri, actualHttpRequestUri);

            Assert.AreEqual(HttpMethod.Post, actualHttpMethod);

            // Check that request content contains right values
            Assert.That(actualHttpRequestContent, Does.Contain("id"));
            Assert.That(actualHttpRequestContent, Does.Contain("12345"));
            Assert.That(actualHttpRequestContent, Does.Contain("test_file.txt"));
            Assert.That(actualHttpRequestContent, Does.Contain("Lorem lipsum"));
            Assert.That(actualHttpRequestContent, Does.Contain("Sumpil merol"));
        }