mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-26 03:11:56 +01:00
AllowAnyHttpStatusCodeInResponse (#407)
* . * , * PUBLISH_TESTRESULTS * fix logging * fix compile error * codefactor fix * Debug - Sonar + other things in csproj
This commit is contained in:
@@ -9,6 +9,7 @@ using WireMock.Owin.Mappers;
|
||||
using WireMock.ResponseBuilders;
|
||||
using WireMock.Types;
|
||||
using WireMock.Util;
|
||||
using WireMock.Owin;
|
||||
#if NET452
|
||||
using Microsoft.Owin;
|
||||
using IResponse = Microsoft.Owin.IOwinResponse;
|
||||
@@ -30,6 +31,7 @@ namespace WireMock.Net.Tests.Owin.Mappers
|
||||
private readonly Mock<Stream> _stream;
|
||||
private readonly Mock<IHeaderDictionary> _headers;
|
||||
private readonly Mock<IFileSystemHandler> _fileSystemHandlerMock;
|
||||
private readonly Mock<IWireMockMiddlewareOptions> _optionsMock;
|
||||
|
||||
public OwinResponseMapperTests()
|
||||
{
|
||||
@@ -37,6 +39,13 @@ namespace WireMock.Net.Tests.Owin.Mappers
|
||||
_stream.SetupAllProperties();
|
||||
_stream.Setup(s => s.WriteAsync(It.IsAny<byte[]>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<CancellationToken>())).Returns(CompletedTask);
|
||||
|
||||
_fileSystemHandlerMock = new Mock<IFileSystemHandler>();
|
||||
_fileSystemHandlerMock.SetupAllProperties();
|
||||
|
||||
_optionsMock = new Mock<IWireMockMiddlewareOptions>();
|
||||
_optionsMock.SetupAllProperties();
|
||||
_optionsMock.SetupGet(o => o.FileSystemHandler).Returns(_fileSystemHandlerMock.Object);
|
||||
|
||||
_headers = new Mock<IHeaderDictionary>();
|
||||
_headers.SetupAllProperties();
|
||||
#if NET452
|
||||
@@ -50,10 +59,7 @@ namespace WireMock.Net.Tests.Owin.Mappers
|
||||
_responseMock.SetupGet(r => r.Body).Returns(_stream.Object);
|
||||
_responseMock.SetupGet(r => r.Headers).Returns(_headers.Object);
|
||||
|
||||
_fileSystemHandlerMock = new Mock<IFileSystemHandler>();
|
||||
_fileSystemHandlerMock.SetupAllProperties();
|
||||
|
||||
_sut = new OwinResponseMapper(_fileSystemHandlerMock.Object);
|
||||
_sut = new OwinResponseMapper(_optionsMock.Object);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -63,20 +69,78 @@ namespace WireMock.Net.Tests.Owin.Mappers
|
||||
await _sut.MapAsync(null, _responseMock.Object);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task OwinResponseMapper_MapAsync_StatusCode()
|
||||
[Theory]
|
||||
[InlineData(0, 200)]
|
||||
[InlineData(-1, 200)]
|
||||
[InlineData(10000, 200)]
|
||||
[InlineData(300, 300)]
|
||||
public async Task OwinResponseMapper_MapAsync_StatusCode(object code, int expected)
|
||||
{
|
||||
// Arrange
|
||||
var responseMessage = new ResponseMessage
|
||||
{
|
||||
StatusCode = 302
|
||||
StatusCode = code
|
||||
};
|
||||
|
||||
// Act
|
||||
await _sut.MapAsync(responseMessage, _responseMock.Object);
|
||||
|
||||
// Assert
|
||||
_responseMock.VerifySet(r => r.StatusCode = 302, Times.Once);
|
||||
_responseMock.VerifySet(r => r.StatusCode = expected, Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task OwinResponseMapper_MapAsync_StatusCodeNull()
|
||||
{
|
||||
// Arrange
|
||||
var responseMessage = new ResponseMessage
|
||||
{
|
||||
StatusCode = null
|
||||
};
|
||||
|
||||
// Act
|
||||
await _sut.MapAsync(responseMessage, _responseMock.Object);
|
||||
|
||||
// Assert
|
||||
_responseMock.VerifyNoOtherCalls();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(0, 0)]
|
||||
[InlineData(-1, -1)]
|
||||
[InlineData(10000, 10000)]
|
||||
[InlineData(300, 300)]
|
||||
public async Task OwinResponseMapper_MapAsync_StatusCode_WithAllowAll(object code, int expected)
|
||||
{
|
||||
// Arrange
|
||||
_optionsMock.SetupGet(o => o.AllowAnyHttpStatusCodeInResponse).Returns(true);
|
||||
var responseMessage = new ResponseMessage
|
||||
{
|
||||
StatusCode = code
|
||||
};
|
||||
|
||||
// Act
|
||||
await _sut.MapAsync(responseMessage, _responseMock.Object);
|
||||
|
||||
// Assert
|
||||
_responseMock.VerifySet(r => r.StatusCode = expected, Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task OwinResponseMapper_MapAsync_StatusCode_WithAllowAll_Null()
|
||||
{
|
||||
// Arrange
|
||||
_optionsMock.SetupGet(o => o.AllowAnyHttpStatusCodeInResponse).Returns(true);
|
||||
var responseMessage = new ResponseMessage
|
||||
{
|
||||
StatusCode = null
|
||||
};
|
||||
|
||||
// Act
|
||||
await _sut.MapAsync(responseMessage, _responseMock.Object);
|
||||
|
||||
// Assert
|
||||
_responseMock.VerifyNoOtherCalls();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -149,7 +149,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
||||
|
||||
// Assert
|
||||
Check.That(responseMessage.BodyData.BodyAsString).Equals("test");
|
||||
Check.That(responseMessage.StatusCode).Equals(200);
|
||||
Check.That(responseMessage.StatusCode).Equals(null);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -91,9 +91,9 @@ namespace WireMock.Net.Tests
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(null, 200)]
|
||||
[InlineData(-1, 200)]
|
||||
[InlineData(0, 200)]
|
||||
[InlineData(null, null)]
|
||||
[InlineData(-1, -1)]
|
||||
[InlineData(0, 0)]
|
||||
[InlineData(200, 200)]
|
||||
[InlineData("200", "200")]
|
||||
public async Task IWireMockAdminApi_PostMappingAsync(object statusCode, object expectedStatusCode)
|
||||
|
||||
@@ -137,7 +137,25 @@ namespace WireMock.Net.Tests
|
||||
Check.That(options.AllowBodyForAllHttpMethods).Equals(true);
|
||||
|
||||
// Verify
|
||||
_loggerMock.Verify(l => l.Info(It.IsAny<string>(), It.IsAny<bool>()));
|
||||
_loggerMock.Verify(l => l.Info(It.Is<string>(s => s.Contains("AllowBodyForAllHttpMethods") && s.Contains("True"))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WireMockServer_WireMockServerSettings_AllowAnyHttpStatusCodeInResponse()
|
||||
{
|
||||
// Assign and Act
|
||||
var server = WireMockServer.Start(new WireMockServerSettings
|
||||
{
|
||||
Logger = _loggerMock.Object,
|
||||
AllowAnyHttpStatusCodeInResponse = true
|
||||
});
|
||||
|
||||
// Assert
|
||||
var options = server.GetPrivateFieldValue<IWireMockMiddlewareOptions>("_options");
|
||||
Check.That(options.AllowAnyHttpStatusCodeInResponse).Equals(true);
|
||||
|
||||
// Verify
|
||||
_loggerMock.Verify(l => l.Info(It.Is<string>(s => s.Contains("AllowAnyHttpStatusCodeInResponse") && s.Contains("True"))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user