mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-01-14 14:23:34 +01:00
* Update some fluent builder methods * fix * sc * ThenRespondWith * // Copyright © WireMock.Net
120 lines
3.8 KiB
C#
120 lines
3.8 KiB
C#
// Copyright © WireMock.Net
|
|
|
|
using System;
|
|
using System.Net;
|
|
using System.Threading.Tasks;
|
|
using FluentAssertions;
|
|
using WireMock.Matchers;
|
|
using WireMock.RequestBuilders;
|
|
using WireMock.ResponseBuilders;
|
|
using WireMock.Server;
|
|
using WireMock.Settings;
|
|
using WireMock.Types;
|
|
using Xunit;
|
|
|
|
namespace WireMock.Net.Tests;
|
|
|
|
public partial class WireMockServerTests
|
|
{
|
|
[Theory]
|
|
[InlineData("SELECT id, value FROM table WHERE id = 1")]
|
|
[InlineData("select id, name, value from table where id in (1, 2, 3, 4, 5)")]
|
|
[InlineData("1,2,3")]
|
|
public async Task WireMockServer_WithParam_QueryParameterMultipleValueSupport_NoComma_Should_Ignore_Comma(string queryValue)
|
|
{
|
|
// Arrange
|
|
var settings = new WireMockServerSettings
|
|
{
|
|
QueryParameterMultipleValueSupport = QueryParameterMultipleValueSupport.NoComma
|
|
};
|
|
var server = WireMockServer.Start(settings);
|
|
server
|
|
.WhenRequest(r => r
|
|
.UsingGet()
|
|
.WithPath("/foo")
|
|
.WithParam("query", queryValue)
|
|
)
|
|
.ThenRespondWith(r => r
|
|
.WithStatusCode(HttpStatusCode.Accepted)
|
|
);
|
|
|
|
// Act
|
|
var requestUri = new Uri($"http://localhost:{server.Port}/foo?query={queryValue}");
|
|
var response = await server.CreateClient().GetAsync(requestUri).ConfigureAwait(false);
|
|
|
|
// Assert
|
|
response.StatusCode.Should().Be(HttpStatusCode.Accepted);
|
|
|
|
server.Stop();
|
|
}
|
|
|
|
[Fact]
|
|
public async Task WireMockServer_WithParam_MultiValueComma()
|
|
{
|
|
// Arrange
|
|
var queryValue = "1,2,3";
|
|
var server = WireMockServer.Start();
|
|
server
|
|
.WhenRequest(r => r
|
|
.UsingGet()
|
|
.WithPath("/foo")
|
|
.WithParam("query", "1", "2", "3")
|
|
)
|
|
.ThenRespondWithStatusCode(200);
|
|
|
|
// Act
|
|
var requestUri = new Uri($"http://localhost:{server.Port}/foo?query={queryValue}");
|
|
var response = await server.CreateClient().GetAsync(requestUri).ConfigureAwait(false);
|
|
|
|
// Assert
|
|
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
|
|
|
server.Stop();
|
|
}
|
|
|
|
[Fact]
|
|
public async Task WireMockServer_WithParam_RejectOnMatch_OnNonMatchingParam_ShouldReturnMappingOk()
|
|
{
|
|
// Arrange
|
|
var server = WireMockServer.Start();
|
|
server.Given(
|
|
Request.Create()
|
|
.WithPath("/v1/person/workers")
|
|
.WithParam("delta_from", MatchBehaviour.RejectOnMatch)
|
|
.UsingGet()
|
|
)
|
|
.ThenRespondWithOK();
|
|
|
|
// Act
|
|
var requestUri = new Uri($"http://localhost:{server.Port}/v1/person/workers?showsourcesystem=true&count=700&page=1§ions=personal%2Corganizations%2Cemployment");
|
|
var response = await server.CreateClient().GetAsync(requestUri).ConfigureAwait(false);
|
|
|
|
// Assert
|
|
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
|
|
|
server.Stop();
|
|
}
|
|
|
|
[Fact]
|
|
public async Task WireMockServer_WithParam_AcceptOnMatch_OnNonMatchingParam_ShouldReturnMappingOk()
|
|
{
|
|
// Arrange
|
|
var server = WireMockServer.Start();
|
|
server.Given(
|
|
Request.Create()
|
|
.WithPath("/v1/person/workers")
|
|
.WithParam("delta_from")
|
|
.UsingGet()
|
|
)
|
|
.ThenRespondWithStatusCode("300");
|
|
|
|
// Act
|
|
var requestUri = new Uri($"http://localhost:{server.Port}/v1/person/workers?showsourcesystem=true&count=700&page=1§ions=personal%2Corganizations%2Cemployment");
|
|
var response = await server.CreateClient().GetAsync(requestUri).ConfigureAwait(false);
|
|
|
|
// Assert
|
|
response.StatusCode.Should().Be(HttpStatusCode.NotFound);
|
|
|
|
server.Stop();
|
|
}
|
|
} |