mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-01-14 23:53:37 +01:00
* Update BodyParser logic * update logic for byte[] * small update * MyGetKey * myget * dotnet nuget push * dotnet build * Release * . * StringContent * 1.0.4.18-preview-02 * Debug * 1.0.4.18-preview-02 * disable some proxy tests * myget * packagesToPack * fix * <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> * Release * <VersionPrefix>1.0.4.18</VersionPrefix> * fix * BodyParserTests * ResponseBodyData (#216) * ResponseBodyData * refactor tests * LogEntryMapperTests
71 lines
3.2 KiB
C#
71 lines
3.2 KiB
C#
using System.IO;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using NFluent;
|
|
using WireMock.Util;
|
|
using Xunit;
|
|
|
|
namespace WireMock.Net.Tests.Util
|
|
{
|
|
public class BodyParserTests
|
|
{
|
|
[Theory]
|
|
[InlineData("application/json", "{ \"x\": 1 }", BodyType.Json, BodyType.Json)]
|
|
[InlineData("application/json; charset=utf-8", "{ \"x\": 1 }", BodyType.Json, BodyType.Json)]
|
|
[InlineData("application/json; odata.metadata=minimal", "{ \"x\": 1 }", BodyType.Json, BodyType.Json)]
|
|
[InlineData("application/vnd.api+json", "{ \"x\": 1 }", BodyType.Json, BodyType.Json)]
|
|
[InlineData("application/vnd.test+json", "{ \"x\": 1 }", BodyType.Json, BodyType.Json)]
|
|
public async Task BodyParser_Parse_ContentTypeJson(string contentType, string bodyAsJson, BodyType detectedBodyType, BodyType detectedBodyTypeFromContentType)
|
|
{
|
|
// Assign
|
|
var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(bodyAsJson));
|
|
|
|
// Act
|
|
var body = await BodyParser.Parse(memoryStream, contentType);
|
|
|
|
// Assert
|
|
Check.That(body.BodyAsBytes).IsNotNull();
|
|
Check.That(body.BodyAsJson).IsNotNull();
|
|
Check.That(body.BodyAsString).Equals(bodyAsJson);
|
|
Check.That(body.DetectedBodyType).IsEqualTo(detectedBodyType);
|
|
Check.That(body.DetectedBodyTypeFromContentType).IsEqualTo(detectedBodyTypeFromContentType);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("application/xml", "<xml>hello</xml>", BodyType.String, BodyType.String)]
|
|
[InlineData("something", "hello", BodyType.String, BodyType.Bytes)]
|
|
public async Task BodyParser_Parse_ContentTypeString(string contentType, string bodyAsString, BodyType detectedBodyType, BodyType detectedBodyTypeFromContentType)
|
|
{
|
|
// Assign
|
|
var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(bodyAsString));
|
|
|
|
// Act
|
|
var body = await BodyParser.Parse(memoryStream, contentType);
|
|
|
|
// Assert
|
|
Check.That(body.BodyAsBytes).IsNotNull();
|
|
Check.That(body.BodyAsJson).IsNull();
|
|
Check.That(body.BodyAsString).Equals(bodyAsString);
|
|
Check.That(body.DetectedBodyType).IsEqualTo(detectedBodyType);
|
|
Check.That(body.DetectedBodyTypeFromContentType).IsEqualTo(detectedBodyTypeFromContentType);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null, "hello", BodyType.String, BodyType.Bytes)]
|
|
public async Task BodyParser_Parse_ContentTypeIsNull(string contentType, string bodyAsString, BodyType detectedBodyType, BodyType detectedBodyTypeFromContentType)
|
|
{
|
|
// Assign
|
|
var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(bodyAsString));
|
|
|
|
// Act
|
|
var body = await BodyParser.Parse(memoryStream, contentType);
|
|
|
|
// Assert
|
|
Check.That(body.BodyAsBytes).IsNotNull();
|
|
Check.That(body.BodyAsJson).IsNull();
|
|
Check.That(body.BodyAsString).Equals(bodyAsString);
|
|
Check.That(body.DetectedBodyType).IsEqualTo(detectedBodyType);
|
|
Check.That(body.DetectedBodyTypeFromContentType).IsEqualTo(detectedBodyTypeFromContentType);
|
|
}
|
|
}
|
|
} |