[265] Add file upload to allow mocking of file operations (#266)

* [265] Add file upload to allow mocking of file operations

* [265] Fix failing test

* Update code + add tests

* LocalFileSystemHandlerTests

* 1.0.13

* Fixed the file post to create the mapping folder if none exists to begin with, otherwise the file upload fails with 404 (can't find the folder to upload to).

* fix tests

* add more tests for LocalFileSystemHandler

* Added the head method for files to check if a file exists without returning it as a body.

* Add a test and fix the response message (head requires no body).

* Fix newline

* Fix newline.

* Fix the number of mapping tests

* Update tests and update client-interface-api

* Cleanup "MappingConverter.cs"
This commit is contained in:
JackCreativeCrew
2019-04-11 16:46:14 +10:00
committed by Stef Heyenrath
parent 6c32b9c31a
commit 12444cc11e
17 changed files with 850 additions and 37 deletions

View File

@@ -1,4 +1,5 @@
using System.Text;
using System;
using System.Text;
using System.Threading.Tasks;
using NFluent;
using WireMock.Models;
@@ -231,5 +232,53 @@ namespace WireMock.Net.Tests.ResponseBuilders
Check.That(response2Message.BodyData.BodyAsString).IsNull();
Check.That(response2Message.StatusCode).IsEqualTo(200);
}
[Fact]
public async Task Response_ProvideResponse_WithBodyAsFile()
{
var fileContents = "testFileContents" + Guid.NewGuid();
var bodyDataAsFile = new BodyData {BodyAsFile = fileContents};
var request1 = new RequestMessage(new UrlDetails("http://localhost/__admin/files/filename.txt"), "PUT", ClientIp, bodyDataAsFile);
var response = Response.Create().WithStatusCode(200).WithBody(fileContents);
var provideResponseAsync = await response.ProvideResponseAsync(request1);
Check.That(provideResponseAsync.StatusCode).IsEqualTo(200);
Check.That(provideResponseAsync.BodyData.BodyAsString).Contains(fileContents);
}
[Fact]
public async Task Response_ProvideResponse_WithResponseAsFile()
{
var fileContents = "testFileContents" + Guid.NewGuid();
var bodyDataAsFile = new BodyData { BodyAsFile = fileContents };
var request1 = new RequestMessage(new UrlDetails("http://localhost/__admin/files/filename.txt"), "GET", ClientIp, bodyDataAsFile);
var response = Response.Create().WithStatusCode(200).WithBody(fileContents);
var provideResponseAsync = await response.ProvideResponseAsync(request1);
Check.That(provideResponseAsync.StatusCode).IsEqualTo(200);
Check.That(provideResponseAsync.BodyData.BodyAsString).Contains(fileContents);
}
[Fact]
public async Task Response_ProvideResponse_WithResponseDeleted()
{
var fileContents = "testFileContents" + Guid.NewGuid();
var bodyDataAsFile = new BodyData { BodyAsFile = fileContents };
var request1 = new RequestMessage(new UrlDetails("http://localhost/__admin/files/filename.txt"), "DELETE", ClientIp, bodyDataAsFile);
var response = Response.Create().WithStatusCode(200).WithBody("File deleted.");
var provideResponseAsync = await response.ProvideResponseAsync(request1);
Check.That(provideResponseAsync.StatusCode).IsEqualTo(200);
Check.That(provideResponseAsync.BodyData.BodyAsString).Contains("File deleted.");
}
}
}