WireMock.Net version 1.1.x (#363)

* refactor

* rename api

* -preview-01

* logger

* move

* RandomDataGenerator.Net

* .

* ISettings

* renames...

* refactor CommandlineParser logic

* remove standalone

* Remove Interfaces

* Update tests

* WireMock.Net.StandAlone

* .

* fix

* .

* _settings

* Admin

* WireMock.Net.Abstractions

* fix build

* rename WireMockServer

* fix compile errors
This commit is contained in:
Stef Heyenrath
2019-12-27 16:01:13 +01:00
committed by GitHub
parent 368f0e13ac
commit d971144426
141 changed files with 2550 additions and 2320 deletions

View File

@@ -1,8 +1,9 @@
using System.Collections.Generic;
using NFluent;
using System.Collections.Generic;
using System.Text;
using NFluent;
using WireMock.Http;
using WireMock.Models;
using WireMock.Types;
using WireMock.Util;
using Xunit;

View File

@@ -2,7 +2,7 @@
using WireMock.Matchers;
using Xunit;
namespace WireMock.Net.Tests
namespace WireMock.Net.Tests.Matchers
{
public class MatchBehaviourHelperTests
{

View File

@@ -19,18 +19,18 @@ namespace WireMock.Net.Tests
public class ObservableLogEntriesTest
{
[Fact]
public async void FluentMockServer_LogEntriesChanged_WithException_Should_LogError()
public async void WireMockServer_LogEntriesChanged_WithException_Should_LogError()
{
// Assign
string path = $"/log_{Guid.NewGuid()}";
var loggerMock = new Mock<IWireMockLogger>();
loggerMock.Setup(l => l.Error(It.IsAny<string>(), It.IsAny<object[]>()));
var settings = new FluentMockServerSettings
var settings = new WireMockServerSettings
{
Logger = loggerMock.Object
};
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
server
.Given(Request.Create()
.WithPath(path)
@@ -48,11 +48,11 @@ namespace WireMock.Net.Tests
}
[Fact]
public async void FluentMockServer_LogEntriesChanged()
public async void WireMockServer_LogEntriesChanged()
{
// Assign
string path = $"/log_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create()
@@ -72,13 +72,13 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_LogEntriesChanged_Parallel()
public async Task WireMockServer_LogEntriesChanged_Parallel()
{
int expectedCount = 10;
// Assign
string path = $"/log_p_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create()

View File

@@ -7,6 +7,7 @@ using System.Threading;
using WireMock.Handlers;
using WireMock.Owin.Mappers;
using WireMock.ResponseBuilders;
using WireMock.Types;
using WireMock.Util;
#if NET452
using Microsoft.Owin;

View File

@@ -4,15 +4,15 @@ using System.Linq.Expressions;
using System.Threading.Tasks;
using Moq;
using Xunit;
using WireMock.Admin.Mappings;
using WireMock.Models;
using WireMock.Owin;
using WireMock.Owin.Mappers;
using WireMock.Util;
using WireMock.Admin.Requests;
using WireMock.Logging;
using WireMock.Matchers;
using System.Collections.Generic;
using WireMock.Admin.Mappings;
using WireMock.Admin.Requests;
#if NET452
using Microsoft.Owin;
using IContext = Microsoft.Owin.IOwinContext;

View File

@@ -6,9 +6,11 @@ using System.Threading.Tasks;
using Moq;
using Newtonsoft.Json;
using NFluent;
using System.Linq;
using WireMock.Matchers;
using WireMock.Matchers.Request;
using WireMock.Models;
using WireMock.Types;
using WireMock.Util;
using Xunit;

View File

@@ -1,10 +1,11 @@
using System.Collections.Generic;
using NFluent;
using Xunit;
using WireMock.RequestBuilders;
using NFluent;
using System.Collections.Generic;
using WireMock.Matchers.Request;
using WireMock.Models;
using WireMock.RequestBuilders;
using WireMock.Types;
using WireMock.Util;
using Xunit;
namespace WireMock.Net.Tests
{

View File

@@ -1,11 +1,12 @@
using System;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json;
using NFluent;
using System;
using System.Text;
using WireMock.Matchers;
using WireMock.Matchers.Request;
using WireMock.Models;
using WireMock.RequestBuilders;
using WireMock.Types;
using WireMock.Util;
using Xunit;

View File

@@ -1,6 +1,5 @@
using Moq;
using System.Threading.Tasks;
using NFluent;
using System.Threading.Tasks;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
@@ -10,7 +9,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseCreateTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
[Fact]
public async Task Response_Create_Func()
@@ -22,7 +21,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create(() => responseMessage);
// Act
var providedResponse = await response.ProvideResponseAsync(request, _settingsMock.Object);
var providedResponse = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(providedResponse).Equals(responseMessage);

View File

@@ -16,7 +16,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
public async Task Response_ProvideResponse_WithBodyFromFile()
{
// Arrange
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
string path = Path.Combine(Directory.GetCurrentDirectory(), "__admin", "mappings", "MyXmlResponse.xml");

View File

@@ -1,12 +1,12 @@
using Moq;
using Newtonsoft.Json.Linq;
using NFluent;
using System;
using System;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using NFluent;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Util;
using Xunit;
@@ -14,7 +14,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithBodyTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Fact]
@@ -31,7 +31,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBody(new byte[] { 48, 49 }, BodyDestinationFormat.String, Encoding.ASCII);
// act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// then
Check.That(responseMessage.BodyData.BodyAsString).Equals("01");
@@ -53,7 +53,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBody(new byte[] { 48, 49 }, BodyDestinationFormat.SameAsSource, Encoding.ASCII);
// act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// then
Check.That(responseMessage.BodyData.BodyAsBytes).ContainsExactly(new byte[] { 48, 49 });
@@ -75,7 +75,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBody("test", null, Encoding.ASCII);
// act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// then
Check.That(responseMessage.BodyData.BodyAsString).Equals("test");
@@ -97,7 +97,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBodyAsJson(x, Encoding.ASCII);
// act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// then
Check.That(responseMessage.BodyData.BodyAsJson).Equals(x);
@@ -119,7 +119,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBodyAsJson(x, true);
// act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// then
Check.That(responseMessage.BodyData.BodyAsJson).Equals(x);
@@ -135,7 +135,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBody("r", BodyDestinationFormat.SameAsSource, Encoding.ASCII);
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsBytes).IsNull();
@@ -153,7 +153,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBody("r", BodyDestinationFormat.Bytes, Encoding.ASCII);
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).IsNull();
@@ -171,7 +171,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithBody("{ \"value\": 42 }", BodyDestinationFormat.Json, Encoding.ASCII);
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).IsNull();
@@ -193,7 +193,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithBody(req => $"path: {req.Path}");
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).IsEqualTo("path: /test");
@@ -221,8 +221,8 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var response1Message = await response.ProvideResponseAsync(request1, _settingsMock.Object);
var response2Message = await response.ProvideResponseAsync(request2, _settingsMock.Object);
var response1Message = await response.ProvideResponseAsync(request1, _settings);
var response2Message = await response.ProvideResponseAsync(request2, _settings);
// Assert
Check.That(((JToken)response1Message.BodyData.BodyAsJson).SelectToken("id")?.Value<int>()).IsEqualTo(request1Id);
@@ -246,7 +246,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithStatusCode(200).WithBody(fileContents);
var provideResponseAsync = await response.ProvideResponseAsync(request1, _settingsMock.Object);
var provideResponseAsync = await response.ProvideResponseAsync(request1, _settings);
Check.That(provideResponseAsync.StatusCode).IsEqualTo(200);
Check.That(provideResponseAsync.BodyData.BodyAsString).Contains(fileContents);
@@ -262,7 +262,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithStatusCode(200).WithBody(fileContents);
var provideResponseAsync = await response.ProvideResponseAsync(request1, _settingsMock.Object);
var provideResponseAsync = await response.ProvideResponseAsync(request1, _settings);
Check.That(provideResponseAsync.StatusCode).IsEqualTo(200);
Check.That(provideResponseAsync.BodyData.BodyAsString).Contains(fileContents);
@@ -278,7 +278,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithStatusCode(200).WithBody("File deleted.");
var provideResponseAsync = await response.ProvideResponseAsync(request1, _settingsMock.Object);
var provideResponseAsync = await response.ProvideResponseAsync(request1, _settings);
Check.That(provideResponseAsync.StatusCode).IsEqualTo(200);
Check.That(provideResponseAsync.BodyData.BodyAsString).Contains("File deleted.");

View File

@@ -1,9 +1,9 @@
using Moq;
using System.Threading.Tasks;
using NFluent;
using System.Threading.Tasks;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Util;
using Xunit;
@@ -11,7 +11,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithCallbackTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
[Fact]
public async Task Response_WithCallback()
@@ -21,7 +21,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithCallback(req => new ResponseMessage { BodyData = new BodyData { DetectedBodyType = BodyType.String, BodyAsString = req.Path + "Bar" }, StatusCode = 302 });
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).IsEqualTo("/fooBar");

View File

@@ -10,7 +10,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithFaultTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Theory]
@@ -23,7 +23,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
// Act
var response = Response.Create().WithFault(faultType);
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
responseMessage.FaultType.Should().Be(faultType);
@@ -39,7 +39,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
// Act
var response = Response.Create().WithFault(faultType, percentage);
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
responseMessage.FaultType.Should().Be(faultType);

View File

@@ -1,8 +1,8 @@
using Moq;
using System;
using System.Threading.Tasks;
using Moq;
using Newtonsoft.Json.Linq;
using NFluent;
using System;
using System.Threading.Tasks;
using WireMock.Handlers;
using WireMock.Models;
using WireMock.ResponseBuilders;
@@ -14,7 +14,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
public class ResponseWithHandlebarsFileTests
{
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
private readonly Mock<IFluentMockServerSettings> _settingsMock;
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
public ResponseWithHandlebarsFileTests()
@@ -22,8 +22,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
_settingsMock = new Mock<IFluentMockServerSettings>();
_settingsMock.SetupGet(s => s.FileSystemHandler).Returns(_filesystemHandlerMock.Object);
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
}
[Fact]
@@ -40,7 +39,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -65,7 +64,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -90,7 +89,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settingsMock.Object)).Throws<ArgumentOutOfRangeException>();
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settings)).Throws<ArgumentOutOfRangeException>();
// Verify
_filesystemHandlerMock.Verify(fs => fs.ReadResponseBodyAsString(It.IsAny<string>()), Times.Never);

View File

@@ -1,11 +1,11 @@
using Moq;
using System;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using NFluent;
using System;
using System.Threading.Tasks;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Util;
using Xunit;
@@ -13,7 +13,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithHandlebarsJsonPathTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Fact]
@@ -63,7 +63,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -89,7 +89,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -143,7 +143,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals($"{{{Environment.NewLine} \"Name\": \"Acme Co\",{Environment.NewLine} \"Products\": [{Environment.NewLine} {{{Environment.NewLine} \"Name\": \"Anvil\",{Environment.NewLine} \"Price\": 50{Environment.NewLine} }}{Environment.NewLine} ]{Environment.NewLine}}}");
@@ -196,7 +196,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals($"{{{Environment.NewLine} \"Name\": \"Acme Co\",{Environment.NewLine} \"Products\": [{Environment.NewLine} {{{Environment.NewLine} \"Name\": \"Anvil\",{Environment.NewLine} \"Price\": 50{Environment.NewLine} }}{Environment.NewLine} ]{Environment.NewLine}}}");
@@ -249,7 +249,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("%0:Anvil%%1:Elbow Grease%");
@@ -302,7 +302,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("%0:Anvil%%1:Elbow Grease%");
@@ -331,7 +331,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settingsMock.Object)).Throws<ArgumentNullException>();
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settings)).Throws<ArgumentNullException>();
}
}
}

View File

@@ -1,11 +1,11 @@
using Moq;
using System;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using NFluent;
using System;
using System.Threading.Tasks;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Util;
using Xunit;
@@ -13,7 +13,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithHandlebarsLinqTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
[Fact]
public async Task Response_ProvideResponse_Handlebars_Linq1_String0()
@@ -29,7 +29,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -59,7 +59,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -89,7 +89,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -119,7 +119,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -144,7 +144,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settingsMock.Object)).Throws<NotSupportedException>();
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settings)).Throws<NotSupportedException>();
}
[Fact]
@@ -160,7 +160,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settingsMock.Object)).Throws<ArgumentNullException>();
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settings)).Throws<ArgumentNullException>();
}
[Fact]
@@ -176,7 +176,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settingsMock.Object)).Throws<ArgumentException>();
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settings)).Throws<ArgumentException>();
}
[Fact]
@@ -200,7 +200,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -228,7 +228,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);

View File

@@ -1,8 +1,7 @@
using Moq;
using System.Linq;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using NFluent;
using System.Linq;
using System.Threading.Tasks;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
@@ -12,7 +11,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithHandlebarsRandomTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Fact]
@@ -32,7 +31,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -55,7 +54,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -77,7 +76,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -101,7 +100,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -123,7 +122,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);

View File

@@ -1,10 +1,10 @@
using Moq;
using NFluent;
using System;
using System;
using System.Threading.Tasks;
using NFluent;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Util;
using Xunit;
@@ -12,7 +12,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithHandlebarsRegexTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Fact]
@@ -28,7 +28,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("abc");
@@ -47,7 +47,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("");
@@ -66,7 +66,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("d");
@@ -85,7 +85,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("5000-https");
@@ -104,7 +104,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("");
@@ -123,7 +123,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("x");
@@ -142,7 +142,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act and Assert
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settingsMock.Object)).Throws<NotSupportedException>();
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settings)).Throws<NotSupportedException>();
}
}
}

View File

@@ -9,6 +9,7 @@ using WireMock.Handlers;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Util;
using Xunit;
#if NET452
@@ -21,7 +22,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithHandlebarsTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Fact]
@@ -40,7 +41,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("test http://localhost/foo /foo POSt");
@@ -58,7 +59,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("http://localhost/a/b http://localhost/wiremock/a/b /a/b /wiremock/a/b");
@@ -76,7 +77,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("a wiremock");
@@ -98,7 +99,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("test keya=1 idx=1 idx=2 keyb=5");
@@ -118,7 +119,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithHeader("x", "{{request.headers.Content-Type}}").WithBody("test").WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("test");
@@ -140,7 +141,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithHeader("x", "{{request.headers.Content-Type}}", "{{request.url}}").WithBody("test").WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("test");
@@ -165,7 +166,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).Equals("test http://localhost:1234 1234 http localhost");
@@ -189,7 +190,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(JsonConvert.SerializeObject(responseMessage.BodyData.BodyAsJson)).Equals("{\"x\":\"test /foo_object\"}");
@@ -213,7 +214,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(JsonConvert.SerializeObject(responseMessage.BodyData.BodyAsJson)).Equals("[\"first\",\"/foo_array\",\"test 1\",\"test 2\",\"last\"]");
@@ -230,7 +231,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
@@ -243,7 +244,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("<xml MyUniqueNumber=\"{{request.query.MyUniqueNumber}}\"></xml>");
_settingsMock.SetupGet(s => s.FileSystemHandler).Returns(filesystemHandlerMock.Object);
_settings.FileSystemHandler = filesystemHandlerMock.Object;
var request = new RequestMessage(new UrlDetails("http://localhost/foo?MyUniqueNumber=1"), "GET", ClientIp);
@@ -252,7 +253,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
@@ -281,7 +282,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithBodyFromFile(@"c:\\{{JsonPath.SelectToken request.body " + jsonPath + "}}\\test.json"); // why use a \\ here ?
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsFile).Equals(@"c:\1\test.json");
@@ -305,7 +306,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(JsonConvert.SerializeObject(responseMessage.BodyData.BodyAsJson)).Equals("\"test\"");
@@ -329,7 +330,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(JsonConvert.SerializeObject(responseMessage.BodyData.BodyAsJson)).Equals("{\"name\":\"WireMock\"}");

View File

@@ -11,7 +11,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithHandlebarsXegerTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Fact]
@@ -29,7 +29,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);
@@ -52,7 +52,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
.WithTransformer();
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
JObject j = JObject.FromObject(responseMessage.BodyData.BodyAsJson);

View File

@@ -1,18 +1,17 @@
using Moq;
using NFluent;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Threading.Tasks;
using NFluent;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Util;
using WireMock.Types;
using Xunit;
namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithHeadersTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private const string ClientIp = "::1";
[Theory]
@@ -26,7 +25,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
IResponseBuilder builder = Response.Create().WithHeader(headerName, headerValue);
// Act
var response = await builder.ProvideResponseAsync(requestMock, _settingsMock.Object);
var response = await builder.ProvideResponseAsync(requestMock, _settings);
// Assert
Check.That(response.Headers[headerName].ToString()).Equals(headerValue);
@@ -42,7 +41,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
IResponseBuilder builder = Response.Create().WithHeader(headerName, headerValues);
// Act
var response = await builder.ProvideResponseAsync(requestMock, _settingsMock.Object);
var response = await builder.ProvideResponseAsync(requestMock, _settings);
// Assert
Check.That(response.Headers[headerName].ToArray()).Equals(headerValues);
@@ -57,7 +56,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithHeaders(headers);
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.Headers["h"]).ContainsExactly("x");
@@ -72,7 +71,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithHeaders(headers);
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.Headers["h"]).ContainsExactly("x");
@@ -87,7 +86,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithHeaders(headers);
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.Headers["h"]).ContainsExactly("x");

View File

@@ -1,14 +1,14 @@
using Moq;
using NFluent;
using System;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using NFluent;
using WireMock.Models;
using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
using WireMock.Server;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Util;
using Xunit;
@@ -16,15 +16,15 @@ namespace WireMock.Net.Tests.ResponseBuilders
{
public class ResponseWithProxyTests : IDisposable
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly FluentMockServer _server;
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private readonly WireMockServer _server;
private readonly Guid _guid;
public ResponseWithProxyTests()
{
_guid = Guid.NewGuid();
_server = FluentMockServer.Start();
_server = WireMockServer.Start();
_server.Given(Request.Create().UsingPost().WithPath($"/{_guid}"))
.RespondWith(Response.Create().WithStatusCode(201).WithBodyAsJson(new { p = 42 }).WithHeader("Content-Type", "application/json"));
}
@@ -38,7 +38,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
var response = Response.Create().WithProxy(_server.Urls[0]);
// Act
var responseMessage = await response.ProvideResponseAsync(request, _settingsMock.Object);
var responseMessage = await response.ProvideResponseAsync(request, _settings);
// Assert
Check.That(responseMessage.BodyData.BodyAsString).IsEqualTo("{\"p\":42}");
@@ -65,7 +65,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
// Act
var request = new RequestMessage(new UrlDetails($"{_server.Urls[0]}/{_guid}"), "GET", "::1");
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settingsMock.Object)).Throws<HttpRequestException>();
Check.ThatAsyncCode(() => response.ProvideResponseAsync(request, _settings)).Throws<HttpRequestException>();
}
public void Dispose()

View File

@@ -4,6 +4,7 @@ using WireMock.Logging;
using WireMock.Models;
using WireMock.ResponseBuilders;
using WireMock.Serialization;
using WireMock.Types;
using WireMock.Util;
using Xunit;

View File

@@ -11,13 +11,13 @@ namespace WireMock.Net.Tests.Serialization
{
public class MappingConverterTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock = new Mock<IFluentMockServerSettings>();
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private readonly MappingConverter _sut;
public MappingConverterTests()
{
_sut = new MappingConverter(new MatcherMapper(_settingsMock.Object));
_sut = new MappingConverter(new MatcherMapper(_settings));
}
[Fact]
@@ -26,7 +26,7 @@ namespace WireMock.Net.Tests.Serialization
// Assign
var request = Request.Create();
var response = Response.Create();
var mapping = new Mapping(Guid.NewGuid(), "", null, _settingsMock.Object, request, response, 0, null, null, null);
var mapping = new Mapping(Guid.NewGuid(), "", null, _settings, request, response, 0, null, null, null);
// Act
var model = _sut.ToMappingModel(mapping);
@@ -44,7 +44,7 @@ namespace WireMock.Net.Tests.Serialization
// Assign
var request = Request.Create();
var response = Response.Create().WithBodyAsJson(new { x = "x" }).WithTransformer();
var mapping = new Mapping(Guid.NewGuid(), "", null, _settingsMock.Object, request, response, 42, null, null, null);
var mapping = new Mapping(Guid.NewGuid(), "", null, _settings, request, response, 42, null, null, null);
// Act
var model = _sut.ToMappingModel(mapping);

View File

@@ -1,6 +1,6 @@
using System;
using Moq;
using Moq;
using NFluent;
using System;
using WireMock.Admin.Mappings;
using WireMock.Matchers;
using WireMock.Serialization;
@@ -11,16 +11,12 @@ namespace WireMock.Net.Tests.Serialization
{
public class MatcherMapperTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock;
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private readonly MatcherMapper _sut;
public MatcherMapperTests()
{
_settingsMock = new Mock<IFluentMockServerSettings>();
_settingsMock.SetupAllProperties();
_sut = new MatcherMapper(_settingsMock.Object);
_sut = new MatcherMapper(_settings);
}
[Fact]

View File

@@ -1,5 +1,4 @@
using System;
using Moq;
using NFluent;
using WireMock.Admin.Mappings;
using WireMock.Matchers;
@@ -11,16 +10,13 @@ namespace WireMock.Net.Tests.Serialization
{
public class MatcherModelMapperTests
{
private readonly Mock<IFluentMockServerSettings> _settingsMock;
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
private readonly MatcherMapper _sut;
public MatcherModelMapperTests()
{
_settingsMock = new Mock<IFluentMockServerSettings>();
_settingsMock.SetupAllProperties();
_sut = new MatcherMapper(_settingsMock.Object);
_sut = new MatcherMapper(_settings);
}
[Fact]

View File

@@ -1,8 +1,8 @@
using NFluent;
using WireMock.Net.StandAlone;
using WireMock.Settings;
using Xunit;
namespace WireMock.Net.Tests.StandAlone
namespace WireMock.Net.Tests.Settings
{
public class SimpleCommandLineParserTests
{

View File

@@ -18,7 +18,7 @@ namespace WireMock.Net.Tests
{
// given
string path = $"/foo_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path).UsingGet())
@@ -38,7 +38,7 @@ namespace WireMock.Net.Tests
{
// given
string path = $"/foo_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path).UsingGet())
@@ -66,7 +66,7 @@ namespace WireMock.Net.Tests
{
// given
string path = $"/foo_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path).UsingGet())
@@ -94,7 +94,7 @@ namespace WireMock.Net.Tests
{
// given
string path = $"/foo_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path).UsingGet())
@@ -122,7 +122,7 @@ namespace WireMock.Net.Tests
{
// given
string path = $"/foo_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path).UsingGet())
@@ -149,7 +149,7 @@ namespace WireMock.Net.Tests
public async Task Scenarios_TodoList_Example()
{
// Assign
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath("/todo/items").UsingGet())
@@ -203,7 +203,7 @@ namespace WireMock.Net.Tests
public async Task Scenarios_Should_process_request_if_equals_state_and_multiple_state_defined()
{
// Assign
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath("/state1").UsingGet())

View File

@@ -2,6 +2,7 @@
using System.IO;
using System.Text;
using System.Threading.Tasks;
using WireMock.Types;
using WireMock.Util;
using Xunit;

View File

@@ -1,5 +1,6 @@
using FluentAssertions;
using System.Collections.Generic;
using WireMock.Types;
using WireMock.Util;
using Xunit;

View File

@@ -25,11 +25,8 @@
</PropertyGroup>
<ItemGroup>
<Compile Remove="Matchers\CSScriptMatcherTests.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\WireMock.Net.StandAlone\WireMock.Net.StandAlone.csproj" />
<ProjectReference Include="..\..\src\WireMock.Net.Abstractions\WireMock.Net.Abstractions.csproj" />
<ProjectReference Include="..\..\src\WireMock.Net.RestClient\WireMock.Net.RestClient.csproj" />
<ProjectReference Include="..\..\src\WireMock.Net\WireMock.Net.csproj" />
</ItemGroup>
@@ -41,7 +38,7 @@
</PackageReference>
<PackageReference Include="FluentAssertions" Version="5.7.0" />
<PackageReference Include="System.Threading" Version="4.3.0" />
<PackageReference Include="RestEase" Version="1.4.7" />
<PackageReference Include="RestEase" Version="1.4.10" />
<PackageReference Include="RandomDataGenerator.Net" Version="1.0.10" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Moq" Version="4.10.1" />

View File

@@ -1,11 +1,11 @@
using Moq;
using Newtonsoft.Json;
using NFluent;
using System;
using System;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Moq;
using Newtonsoft.Json;
using NFluent;
using WireMock.Handlers;
using WireMock.Logging;
using WireMock.RequestBuilders;
@@ -16,7 +16,7 @@ using Xunit;
namespace WireMock.Net.Tests
{
public class FluentMockServerAdminTests
public class WireMockServerAdminTests
{
// For for AppVeyor + OpenCover
private string GetCurrentFolder()
@@ -29,9 +29,9 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_StartStop()
public void WireMockServer_Admin_StartStop()
{
var server1 = FluentMockServer.Start("http://localhost:19091");
var server1 = WireMockServer.Start("http://localhost:19091");
Check.That(server1.Urls[0]).Equals("http://localhost:19091");
@@ -39,9 +39,9 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ResetMappings()
public void WireMockServer_Admin_ResetMappings()
{
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
string folder = Path.Combine(GetCurrentFolder(), "__admin", "mappings");
server.ReadStaticMappings(folder);
@@ -58,7 +58,7 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_SaveStaticMappings()
public void WireMockServer_Admin_SaveStaticMappings()
{
// Assign
string guid = "791a3f31-6946-aaaa-8e6f-0237c7441111";
@@ -67,7 +67,7 @@ namespace WireMock.Net.Tests
staticMappingHandlerMock.Setup(m => m.FolderExists(It.IsAny<string>())).Returns(true);
staticMappingHandlerMock.Setup(m => m.WriteMappingFile(It.IsAny<string>(), It.IsAny<string>()));
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
FileSystemHandler = staticMappingHandlerMock.Object
});
@@ -87,12 +87,12 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMapping_WithNonGuidFilename()
public void WireMockServer_Admin_ReadStaticMapping_WithNonGuidFilename()
{
var guid = Guid.Parse("04ee4872-9efd-4770-90d3-88d445265d0d");
string title = "documentdb_root_title";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
string path = Path.Combine(GetCurrentFolder(), "__admin", "mappings", "documentdb_root.json");
server.ReadStaticMappingAndAddOrUpdate(path);
@@ -107,11 +107,11 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMapping_WithGuidFilename()
public void WireMockServer_Admin_ReadStaticMapping_WithGuidFilename()
{
string guid = "00000002-ee28-4f29-ae63-1ac9b0802d86";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
string path = Path.Combine(GetCurrentFolder(), "__admin", "mappings", guid + ".json");
server.ReadStaticMappingAndAddOrUpdate(path);
@@ -125,9 +125,9 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMapping_WithArray()
public void WireMockServer_Admin_ReadStaticMapping_WithArray()
{
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
string path = Path.Combine(GetCurrentFolder(), "__admin", "mappings", "array.json");
server.ReadStaticMappingAndAddOrUpdate(path);
@@ -137,7 +137,7 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMapping_WithResponseBodyFromFile()
public void WireMockServer_Admin_ReadStaticMapping_WithResponseBodyFromFile()
{
string guid = "00000002-ee28-4f29-ae63-1ac9b0802d87";
@@ -152,7 +152,7 @@ namespace WireMock.Net.Tests
string output = JsonConvert.SerializeObject(jsonObj, Formatting.Indented);
File.WriteAllText(path, output);
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server.ReadStaticMappingAndAddOrUpdate(path);
var mappings = server.Mappings.ToArray();
@@ -165,7 +165,7 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMappings_FolderExistsIsTrue()
public void WireMockServer_Admin_ReadStaticMappings_FolderExistsIsTrue()
{
// Assign
var staticMappingHandlerMock = new Mock<IFileSystemHandler>();
@@ -173,7 +173,7 @@ namespace WireMock.Net.Tests
staticMappingHandlerMock.Setup(m => m.FolderExists(It.IsAny<string>())).Returns(true);
staticMappingHandlerMock.Setup(m => m.EnumerateFiles(It.IsAny<string>(), It.IsAny<bool>())).Returns(new string[0]);
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
FileSystemHandler = staticMappingHandlerMock.Object
});
@@ -188,14 +188,14 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMappingAndAddOrUpdate()
public void WireMockServer_Admin_ReadStaticMappingAndAddOrUpdate()
{
// Assign
string mapping = "{\"Request\": {\"Path\": {\"Matchers\": [{\"Name\": \"WildcardMatcher\",\"Pattern\": \"/static/mapping\"}]},\"Methods\": [\"get\"]},\"Response\": {\"BodyAsJson\": { \"body\": \"static mapping\" }}}";
var staticMappingHandlerMock = new Mock<IFileSystemHandler>();
staticMappingHandlerMock.Setup(m => m.ReadMappingFile(It.IsAny<string>())).Returns(mapping);
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
FileSystemHandler = staticMappingHandlerMock.Object
});
@@ -208,9 +208,9 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMappings()
public void WireMockServer_Admin_ReadStaticMappings()
{
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
string folder = Path.Combine(GetCurrentFolder(), "__admin", "mappings");
server.ReadStaticMappings(folder);
@@ -220,16 +220,16 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_ReadStaticMappings_FolderDoesNotExist()
public void WireMockServer_Admin_ReadStaticMappings_FolderDoesNotExist()
{
// Assign
var loggerMock = new Mock<IWireMockLogger>();
loggerMock.Setup(l => l.Info(It.IsAny<string>(), It.IsAny<object[]>()));
var settings = new FluentMockServerSettings
var settings = new WireMockServerSettings
{
Logger = loggerMock.Object
};
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
// Act
server.ReadStaticMappings(Guid.NewGuid().ToString());
@@ -242,10 +242,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_Mappings_WithGuid_Get()
public void WireMockServer_Admin_Mappings_WithGuid_Get()
{
Guid guid = Guid.Parse("90356dba-b36c-469a-a17e-669cd84f1f05");
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server.Given(Request.Create().WithPath("/foo1").UsingGet()).WithGuid(guid)
.RespondWith(Response.Create().WithStatusCode(201).WithBody("1"));
@@ -258,10 +258,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_Mappings_WithGuidAsString_Get()
public void WireMockServer_Admin_Mappings_WithGuidAsString_Get()
{
string guid = "90356dba-b36c-469a-a17e-669cd84f1f05";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server.Given(Request.Create().WithPath("/foo100").UsingGet()).WithGuid(guid)
.RespondWith(Response.Create().WithStatusCode(201).WithBody("1"));
@@ -271,10 +271,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_Mappings_Add_SameGuid()
public void WireMockServer_Admin_Mappings_Add_SameGuid()
{
var guid = Guid.Parse("90356dba-b36c-469a-a17e-669cd84f1f05");
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
var response1 = Response.Create().WithStatusCode(500);
server.Given(Request.Create().UsingGet())
@@ -297,9 +297,9 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Mappings_AtPriority()
public async Task WireMockServer_Admin_Mappings_AtPriority()
{
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
// given
server.Given(Request.Create().WithPath("/1").UsingGet())
@@ -321,10 +321,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Requests_Get()
public async Task WireMockServer_Admin_Requests_Get()
{
// given
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
// when
await new HttpClient().GetAsync("http://localhost:" + server.Ports[0] + "/foo");
@@ -337,12 +337,12 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Logging_SetMaxRequestLogCount()
public async Task WireMockServer_Admin_Logging_SetMaxRequestLogCount()
{
// Assign
var client = new HttpClient();
// Act
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server.SetMaxRequestLogCount(2);
await client.GetAsync("http://localhost:" + server.Ports[0] + "/foo1");
@@ -360,15 +360,15 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_WatchStaticMappings()
public void WireMockServer_Admin_WatchStaticMappings()
{
// Assign
var fileMock = new Mock<IFileSystemHandler>();
var settings = new FluentMockServerSettings
var settings = new WireMockServerSettings
{
FileSystemHandler = fileMock.Object
};
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
// Act
server.WatchStaticMappings();
@@ -379,7 +379,7 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Admin_AddMappingsAndSaveToFile()
public void WireMockServer_Admin_AddMappingsAndSaveToFile()
{
// Assign
string guid = "791a3f31-6946-aaaa-8e6f-0237c7442222";
@@ -388,7 +388,7 @@ namespace WireMock.Net.Tests
staticMappingHandlerMock.Setup(m => m.FolderExists(It.IsAny<string>())).Returns(true);
staticMappingHandlerMock.Setup(m => m.WriteMappingFile(It.IsAny<string>(), It.IsAny<string>()));
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
FileSystemHandler = staticMappingHandlerMock.Object
});

View File

@@ -14,12 +14,12 @@ using Xunit;
namespace WireMock.Net.Tests
{
public class FluentMockServerAdminFilesTests
public class WireMockServerAdminFilesTests
{
private readonly HttpClient _client = new HttpClient();
[Fact]
public async Task FluentMockServer_Admin_Files_Post_Ascii()
public async Task WireMockServer_Admin_Files_Post_Ascii()
{
// Arrange
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
@@ -27,7 +27,7 @@ namespace WireMock.Net.Tests
filesystemHandlerMock.Setup(fs => fs.FolderExists(It.IsAny<string>())).Returns(true);
filesystemHandlerMock.Setup(fs => fs.WriteFile(It.IsAny<string>(), It.IsAny<byte[]>()));
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
UseSSL = false,
StartAdminInterface = true,
@@ -53,7 +53,7 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Files_Post_MappingFolderDoesNotExistsButWillBeCreated()
public async Task WireMockServer_Admin_Files_Post_MappingFolderDoesNotExistsButWillBeCreated()
{
// Arrange
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
@@ -62,7 +62,7 @@ namespace WireMock.Net.Tests
filesystemHandlerMock.Setup(fs => fs.FolderExists(It.IsAny<string>())).Returns(false);
filesystemHandlerMock.Setup(fs => fs.WriteFile(It.IsAny<string>(), It.IsAny<byte[]>()));
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
UseSSL = false,
StartAdminInterface = true,
@@ -88,14 +88,14 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Files_GetAscii()
public async Task WireMockServer_Admin_Files_GetAscii()
{
// Arrange
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
filesystemHandlerMock.Setup(fs => fs.FileExists(It.IsAny<string>())).Returns(true);
filesystemHandlerMock.Setup(fs => fs.ReadFile(It.IsAny<string>())).Returns(Encoding.ASCII.GetBytes("Here's a string."));
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
UseSSL = false,
StartAdminInterface = true,
@@ -123,7 +123,7 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Files_GetUTF16()
public async Task WireMockServer_Admin_Files_GetUTF16()
{
// Arrange
byte[] symbol = Encoding.UTF32.GetBytes(char.ConvertFromUtf32(0x1D161));
@@ -131,7 +131,7 @@ namespace WireMock.Net.Tests
filesystemHandlerMock.Setup(fs => fs.FileExists(It.IsAny<string>())).Returns(true);
filesystemHandlerMock.Setup(fs => fs.ReadFile(It.IsAny<string>())).Returns(symbol);
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
UseSSL = false,
StartAdminInterface = true,
@@ -157,13 +157,13 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Files_Head()
public async Task WireMockServer_Admin_Files_Head()
{
// Arrange
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
filesystemHandlerMock.Setup(fs => fs.FileExists(It.IsAny<string>())).Returns(true);
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
UseSSL = false,
StartAdminInterface = true,
@@ -185,13 +185,13 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Admin_Files_Head_FileDoesNotExistsReturns404()
public async Task WireMockServer_Admin_Files_Head_FileDoesNotExistsReturns404()
{
// Arrange
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
filesystemHandlerMock.Setup(fs => fs.FileExists(It.IsAny<string>())).Returns(false);
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
UseSSL = false,
StartAdminInterface = true,

View File

@@ -6,13 +6,13 @@ using Xunit;
namespace WireMock.Net.Tests
{
public class FluentMockServerAuthenticationTests
public class WireMockServerAuthenticationTests
{
[Fact]
public void FluentMockServer_Authentication_SetBasicAuthentication()
public void WireMockServer_Authentication_SetBasicAuthentication()
{
// Assign
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
// Act
server.SetBasicAuthentication("x", "y");
@@ -25,10 +25,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_Authentication_RemoveBasicAuthentication()
public void WireMockServer_Authentication_RemoveBasicAuthentication()
{
// Assign
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server.SetBasicAuthentication("x", "y");
// Act

View File

@@ -1,12 +1,11 @@
using NFluent;
using System;
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using FluentAssertions;
using NFluent;
using WireMock.Matchers.Request;
using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
@@ -16,13 +15,13 @@ using Xunit;
namespace WireMock.Net.Tests
{
public class FluentMockServerProxyTests
public class WireMockServerProxyTests
{
[Fact]
public async Task FluentMockServer_Proxy_Should_log_proxied_requests()
public async Task WireMockServer_Proxy_Should_log_proxied_requests()
{
// Assign
var settings = new FluentMockServerSettings
var settings = new WireMockServerSettings
{
ProxyAndRecordSettings = new ProxyAndRecordSettings
{
@@ -31,7 +30,7 @@ namespace WireMock.Net.Tests
SaveMappingToFile = false
}
};
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
// Act
var requestMessage = new HttpRequestMessage
@@ -48,11 +47,11 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_proxy_responses()
public async Task WireMockServer_Proxy_Should_proxy_responses()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create().WithProxy("http://www.google.com"));
@@ -74,16 +73,16 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_preserve_content_header_in_proxied_request()
public async Task WireMockServer_Proxy_Should_preserve_content_header_in_proxied_request()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create());
var settings = new FluentMockServerSettings
var settings = new WireMockServerSettings
{
ProxyAndRecordSettings = new ProxyAndRecordSettings
{
@@ -92,7 +91,7 @@ namespace WireMock.Net.Tests
SaveMappingToFile = false
}
};
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
// Act
var requestMessage = new HttpRequestMessage
@@ -121,16 +120,16 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_exclude_blacklisted_content_header_in_mapping()
public async Task WireMockServer_Proxy_Should_exclude_blacklisted_content_header_in_mapping()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create());
var settings = new FluentMockServerSettings
var settings = new WireMockServerSettings
{
ProxyAndRecordSettings = new ProxyAndRecordSettings
{
@@ -140,7 +139,7 @@ namespace WireMock.Net.Tests
BlackListedHeaders = new[] { "blacklisted" }
}
};
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
var defaultMapping = server.Mappings.First();
// Act
@@ -160,19 +159,19 @@ namespace WireMock.Net.Tests
var matchers = ((Request)mapping.RequestMatcher).GetRequestMessageMatchers<RequestMessageHeaderMatcher>().Select(m => m.Name).ToList();
Check.That(matchers).Not.Contains("blacklisted");
Check.That(matchers).Contains("ok");
}
}
[Fact]
public async Task FluentMockServer_Proxy_Should_exclude_blacklisted_cookies_in_mapping()
public async Task WireMockServer_Proxy_Should_exclude_blacklisted_cookies_in_mapping()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create());
var settings = new FluentMockServerSettings
var settings = new WireMockServerSettings
{
ProxyAndRecordSettings = new ProxyAndRecordSettings
{
@@ -182,7 +181,7 @@ namespace WireMock.Net.Tests
BlackListedCookies = new[] { "ASP.NET_SessionId" }
}
};
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
var defaultMapping = server.Mappings.First();
// Act
@@ -197,7 +196,7 @@ namespace WireMock.Net.Tests
cookieContainer.Add(new Uri("http://localhost"), new Cookie("ASP.NET_SessionId", "exact_match"));
cookieContainer.Add(new Uri("http://localhost"), new Cookie("AsP.NeT_SessIonID", "case_mismatch"));
cookieContainer.Add(new Uri("http://localhost"), new Cookie("GoodCookie", "I_should_pass"));
var handler = new HttpClientHandler { CookieContainer = cookieContainer };
await new HttpClient(handler).SendAsync(requestMessage);
@@ -212,16 +211,16 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_preserve_content_header_in_proxied_request_with_empty_content()
public async Task WireMockServer_Proxy_Should_preserve_content_header_in_proxied_request_with_empty_content()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create());
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath("/*"))
.RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0]));
@@ -244,18 +243,18 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_preserve_content_header_in_proxied_response()
public async Task WireMockServer_Proxy_Should_preserve_content_header_in_proxied_response()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create()
.WithBody("body")
.WithHeader("Content-Type", "text/plain"));
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0]));
@@ -275,20 +274,20 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_in_proxied_response()
public async Task WireMockServer_Proxy_Should_change_absolute_location_header_in_proxied_response()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var settings = new FluentMockServerSettings { AllowPartialMapping = false };
var settings = new WireMockServerSettings { AllowPartialMapping = false };
var serverForProxyForwarding = FluentMockServer.Start(settings);
var serverForProxyForwarding = WireMockServer.Start(settings);
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create()
.WithStatusCode(HttpStatusCode.Redirect)
.WithHeader("Location", "/testpath"));
var server = FluentMockServer.Start(settings);
var server = WireMockServer.Start(settings);
server
.Given(Request.Create().WithPath(path).UsingAnyMethod())
.RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0]));
@@ -308,16 +307,16 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_preserve_cookie_header_in_proxied_request()
public async Task WireMockServer_Proxy_Should_preserve_cookie_header_in_proxied_request()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create());
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0]));
@@ -345,17 +344,17 @@ namespace WireMock.Net.Tests
/// in UTF8 and breaks if it is not treated as binary content.
/// </summary>
[Fact]
public async Task FluentMockServer_Proxy_Should_preserve_binary_request_content()
public async Task WireMockServer_Proxy_Should_preserve_binary_request_content()
{
// arrange
var jpegHeader = new byte[] {0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00};
var jpegHeader = new byte[] { 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00 };
var brokenJpegHeader = new byte[]
{0xEF, 0xBF, 0xBD, 0xEF, 0xBF, 0xBD, 0xEF, 0xBF, 0xBD, 0xEF, 0xBF, 0xBD, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00};
bool HasCorrectHeader(byte[] bytes) => bytes.SequenceEqual(jpegHeader);
bool HasBrokenHeader(byte[] bytes) => bytes.SequenceEqual(brokenJpegHeader);
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithBody(HasCorrectHeader))
.RespondWith(Response.Create().WithSuccess());
@@ -363,32 +362,32 @@ namespace WireMock.Net.Tests
serverForProxyForwarding
.Given(Request.Create().WithBody(HasBrokenHeader))
.RespondWith(Response.Create().WithStatusCode(HttpStatusCode.InternalServerError));
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create())
.RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0]));
// act
var response = await new HttpClient().PostAsync(server.Urls[0], new ByteArrayContent(jpegHeader));
// assert
Check.That(response.StatusCode).IsEqualTo(HttpStatusCode.OK);
}
[Fact]
public async Task FluentMockServer_Proxy_Should_set_BodyAsJson_in_proxied_response()
public async Task WireMockServer_Proxy_Should_set_BodyAsJson_in_proxied_response()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create()
.WithBodyAsJson(new { i = 42 })
.WithHeader("Content-Type", "application/json; charset=utf-8"));
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0]));
@@ -408,18 +407,18 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_set_Body_in_multipart_proxied_response()
public async Task WireMockServer_Proxy_Should_set_Body_in_multipart_proxied_response()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create()
.WithBodyAsJson(new { i = 42 })
);
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0]));
@@ -438,16 +437,16 @@ namespace WireMock.Net.Tests
}
[Fact]
public async Task FluentMockServer_Proxy_Should_Not_overrule_AdminMappings()
public async Task WireMockServer_Proxy_Should_Not_overrule_AdminMappings()
{
// Assign
string path = $"/prx_{Guid.NewGuid().ToString()}";
var serverForProxyForwarding = FluentMockServer.Start();
var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding
.Given(Request.Create().WithPath(path))
.RespondWith(Response.Create().WithBody("ok"));
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
StartAdminInterface = true,
ReadStaticMappings = false,

View File

@@ -11,18 +11,18 @@ using Xunit;
namespace WireMock.Net.Tests
{
public class FluentMockServerProxy2Tests
public class WireMockServerProxy2Tests
{
[Fact]
public async Task FluentMockServer_ProxyAndRecordSettings_ShouldProxy()
public async Task WireMockServer_ProxyAndRecordSettings_ShouldProxy()
{
// Assign
var serverAsProxy = FluentMockServer.Start();
var serverAsProxy = WireMockServer.Start();
serverAsProxy.Given(Request.Create().UsingPost())
.RespondWith(Response.Create().WithStatusCode(201).WithBodyAsJson(new { p = 42 }).WithHeader("Content-Type", "application/json"));
// Act
var server = FluentMockServer.Start();
var server = WireMockServer.Start();
server.Given(Request.Create().UsingPost().WithHeader("prx", "1"))
.RespondWith(Response.Create().WithProxy(serverAsProxy.Urls[0]));

View File

@@ -1,6 +1,6 @@
using System.Linq;
using Moq;
using NFluent;
using System.Linq;
using WireMock.Logging;
using WireMock.Owin;
using WireMock.Server;
@@ -9,21 +9,21 @@ using Xunit;
namespace WireMock.Net.Tests
{
public class FluentMockServerSettingsTests
public class WireMockServerSettingsTests
{
private readonly Mock<IWireMockLogger> _loggerMock;
public FluentMockServerSettingsTests()
public WireMockServerSettingsTests()
{
_loggerMock = new Mock<IWireMockLogger>();
_loggerMock.Setup(l => l.Info(It.IsAny<string>(), It.IsAny<object[]>()));
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_StartAdminInterfaceTrue_BasicAuthenticationIsSet()
public void WireMockServer_WireMockServerSettings_StartAdminInterfaceTrue_BasicAuthenticationIsSet()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
StartAdminInterface = true,
AdminUsername = "u",
@@ -36,10 +36,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_StartAdminInterfaceFalse_BasicAuthenticationIsNotSet()
public void WireMockServer_WireMockServerSettings_StartAdminInterfaceFalse_BasicAuthenticationIsNotSet()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
StartAdminInterface = false,
AdminUsername = "u",
@@ -52,10 +52,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_PriorityFromAllAdminMappingsIsLow_When_StartAdminInterface_IsTrue()
public void WireMockServer_WireMockServerSettings_PriorityFromAllAdminMappingsIsLow_When_StartAdminInterface_IsTrue()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
StartAdminInterface = true
});
@@ -67,10 +67,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_ProxyAndRecordSettings_ProxyPriority_Is1000_When_StartAdminInterface_IsTrue()
public void WireMockServer_WireMockServerSettings_ProxyAndRecordSettings_ProxyPriority_Is1000_When_StartAdminInterface_IsTrue()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
StartAdminInterface = true,
ProxyAndRecordSettings = new ProxyAndRecordSettings
@@ -87,10 +87,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_ProxyAndRecordSettings_ProxyPriority_Is0_When_StartAdminInterface_IsFalse()
public void WireMockServer_WireMockServerSettings_ProxyAndRecordSettings_ProxyPriority_Is0_When_StartAdminInterface_IsFalse()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
ProxyAndRecordSettings = new ProxyAndRecordSettings
{
@@ -105,10 +105,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_AllowPartialMapping()
public void WireMockServer_WireMockServerSettings_AllowPartialMapping()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
Logger = _loggerMock.Object,
AllowPartialMapping = true
@@ -123,10 +123,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_AllowBodyForAllHttpMethods()
public void WireMockServer_WireMockServerSettings_AllowBodyForAllHttpMethods()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
Logger = _loggerMock.Object,
AllowBodyForAllHttpMethods = true
@@ -141,10 +141,10 @@ namespace WireMock.Net.Tests
}
[Fact]
public void FluentMockServer_FluentMockServerSettings_RequestLogExpirationDuration()
public void WireMockServer_WireMockServerSettings_RequestLogExpirationDuration()
{
// Assign and Act
var server = FluentMockServer.Start(new FluentMockServerSettings
var server = WireMockServer.Start(new WireMockServerSettings
{
Logger = _loggerMock.Object,
RequestLogExpirationDuration = 1

View File

@@ -1,271 +1,256 @@
using System;
using System.Diagnostics;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using NFluent;
using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
using WireMock.Server;
using Xunit;
namespace WireMock.Net.Tests
{
public class FluentMockServerTests
{
[Fact]
public async Task FluentMockServer_Should_respond_to_request_bodyAsBase64()
{
// given
var server = FluentMockServer.Start();
server.Given(Request.Create().WithPath("/foo").UsingGet()).RespondWith(Response.Create().WithBodyFromBase64("SGVsbG8gV29ybGQ/"));
// when
var response = await new HttpClient().GetStringAsync("http://localhost:" + server.Ports[0] + "/foo");
// then
Check.That(response).IsEqualTo("Hello World?");
}
[Fact]
public async Task FluentMockServer_Should_reset_requestlogs()
{
// given
var server = FluentMockServer.Start();
// when
await new HttpClient().GetAsync("http://localhost:" + server.Ports[0] + "/foo");
server.ResetLogEntries();
// then
Check.That(server.LogEntries).IsEmpty();
}
[Fact]
public void FluentMockServer_Should_reset_mappings()
{
// given
string path = $"/foo_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
server
.Given(Request.Create()
.WithPath(path)
.UsingGet())
.RespondWith(Response.Create()
.WithBody(@"{ msg: ""Hello world!""}"));
// when
server.ResetMappings();
// then
Check.That(server.Mappings).IsEmpty();
Check.ThatAsyncCode(() => new HttpClient().GetStringAsync("http://localhost:" + server.Ports[0] + path)).ThrowsAny();
}
[Fact]
public async Task FluentMockServer_Should_respond_a_redirect_without_body()
{
// Assign
string path = $"/foo_{Guid.NewGuid()}";
string pathToRedirect = $"/bar_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
server
.Given(Request.Create()
.WithPath(path)
.UsingGet())
.RespondWith(Response.Create()
.WithStatusCode(307)
.WithHeader("Location", pathToRedirect));
server
.Given(Request.Create()
.WithPath(pathToRedirect)
.UsingGet())
.RespondWith(Response.Create()
.WithStatusCode(200)
.WithBody("REDIRECT SUCCESSFUL"));
// Act
var response = await new HttpClient().GetStringAsync($"http://localhost:{server.Ports[0]}{path}");
// Assert
Check.That(response).IsEqualTo("REDIRECT SUCCESSFUL");
}
[Fact]
public async Task FluentMockServer_Should_delay_responses_for_a_given_route()
{
// given
var server = FluentMockServer.Start();
server
.Given(Request.Create()
.WithPath("/*"))
.RespondWith(Response.Create()
.WithBody(@"{ msg: ""Hello world!""}")
.WithDelay(TimeSpan.FromMilliseconds(200)));
// when
var watch = new Stopwatch();
watch.Start();
await new HttpClient().GetStringAsync("http://localhost:" + server.Ports[0] + "/foo");
watch.Stop();
// then
Check.That(watch.ElapsedMilliseconds).IsStrictlyGreaterThan(200);
}
[Fact]
public async Task FluentMockServer_Should_delay_responses()
{
// given
var server = FluentMockServer.Start();
server.AddGlobalProcessingDelay(TimeSpan.FromMilliseconds(200));
server
.Given(Request.Create().WithPath("/*"))
.RespondWith(Response.Create().WithBody(@"{ msg: ""Hello world!""}"));
// when
var watch = new Stopwatch();
watch.Start();
await new HttpClient().GetStringAsync("http://localhost:" + server.Ports[0] + "/foo");
watch.Stop();
// then
Check.That(watch.ElapsedMilliseconds).IsStrictlyGreaterThan(200);
}
//Leaving commented as this requires an actual certificate with password, along with a service that expects a client certificate
//[Fact]
//public async Task Should_proxy_responses_with_client_certificate()
//{
// // given
// var _server = FluentMockServer.Start();
// _server
// .Given(Request.Create().WithPath("/*"))
// .RespondWith(Response.Create().WithProxy("https://server-that-expects-a-client-certificate", @"\\yourclientcertificatecontainingprivatekey.pfx", "yourclientcertificatepassword"));
// // when
// var result = await new HttpClient().GetStringAsync("http://localhost:" + _server.Ports[0] + "/someurl?someQuery=someValue");
// // then
// Check.That(result).Contains("google");
//}
[Fact]
public async Task FluentMockServer_Should_exclude_restrictedResponseHeader()
{
// Assign
string path = $"/foo_{Guid.NewGuid()}";
var server = FluentMockServer.Start();
server
.Given(Request.Create().WithPath(path).UsingGet())
.RespondWith(Response.Create().WithHeader("Transfer-Encoding", "chunked").WithHeader("test", "t"));
// Act
var response = await new HttpClient().GetAsync("http://localhost:" + server.Ports[0] + path);
// Assert
Check.That(response.Headers.Contains("test")).IsTrue();
Check.That(response.Headers.Contains("Transfer-Encoding")).IsFalse();
}
[Theory]
[InlineData("DELETE")]
#if !NET452
[InlineData("TRACE")]
[InlineData("GET")]
#endif
public async Task FluentMockServer_Should_exclude_body_for_methods_where_body_is_definitely_disallowed(string method)
{
// Assign
string content = "hello";
var server = FluentMockServer.Start();
server
.Given(Request.Create().WithBody((byte[] bodyBytes) => bodyBytes != null))
.AtPriority(0)
.RespondWith(Response.Create().WithStatusCode(400));
server
.Given(Request.Create())
.AtPriority(1)
.RespondWith(Response.Create().WithStatusCode(200));
// Act
var request = new HttpRequestMessage(new HttpMethod(method), "http://localhost:" + server.Ports[0] + "/");
request.Content = new StringContent(content);
var response = await new HttpClient().SendAsync(request);
// Assert
Check.That(response.StatusCode).Equals(HttpStatusCode.OK);
}
[Theory]
[InlineData("POST")]
[InlineData("PUT")]
[InlineData("OPTIONS")]
[InlineData("REPORT")]
[InlineData("SOME-UNKNOWN-METHOD")] // default behavior for unknown methods is to allow a body (see BodyParser.ShouldParseBody)
public async Task FluentMockServer_Should_not_exclude_body_for_supported_methods(string method)
{
// Assign
string content = "hello";
var server = FluentMockServer.Start();
server
.Given(Request.Create().WithBody(content))
.AtPriority(0)
.RespondWith(Response.Create().WithStatusCode(200));
server
.Given(Request.Create())
.AtPriority(1)
.RespondWith(Response.Create().WithStatusCode(400));
// Act
var request = new HttpRequestMessage(new HttpMethod(method), "http://localhost:" + server.Ports[0] + "/");
request.Content = new StringContent(content);
var response = await new HttpClient().SendAsync(request);
// Assert
Check.That(response.StatusCode).Equals(HttpStatusCode.OK);
}
[Theory]
[InlineData("application/json")]
[InlineData("application/json; charset=ascii")]
[InlineData("application/json; charset=utf-8")]
[InlineData("application/json; charset=UTF-8")]
public async Task WireMockServer_Should_AcceptPostMappingsWithContentTypeJsonAndAnyCharset(string contentType)
{
// Arrange
string message = @"{
""request"": {
""method"": ""GET"",
""url"": ""/some/thing""
},
""response"": {
""status"": 200,
""body"": ""Hello world!"",
""headers"": {
""Content-Type"": ""text/plain""
}
}
}";
var stringContent = new StringContent(message);
stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType);
var server = FluentMockServer.StartWithAdminInterface();
// Act
var response = await new HttpClient().PostAsync($"{server.Urls[0]}/__admin/mappings", stringContent);
// Assert
Check.That(response.StatusCode).Equals(HttpStatusCode.Created);
Check.That(await response.Content.ReadAsStringAsync()).Contains("Mapping added");
}
}
using System;
using System.Diagnostics;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using NFluent;
using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
using WireMock.Server;
using Xunit;
namespace WireMock.Net.Tests
{
public class WireMockServerTests
{
[Fact]
public async Task WireMockServer_Should_reset_requestlogs()
{
// given
var server = WireMockServer.Start();
// when
await new HttpClient().GetAsync("http://localhost:" + server.Ports[0] + "/foo");
server.ResetLogEntries();
// then
Check.That(server.LogEntries).IsEmpty();
}
[Fact]
public void WireMockServer_Should_reset_mappings()
{
// given
string path = $"/foo_{Guid.NewGuid()}";
var server = WireMockServer.Start();
server
.Given(Request.Create()
.WithPath(path)
.UsingGet())
.RespondWith(Response.Create()
.WithBody(@"{ msg: ""Hello world!""}"));
// when
server.ResetMappings();
// then
Check.That(server.Mappings).IsEmpty();
Check.ThatAsyncCode(() => new HttpClient().GetStringAsync("http://localhost:" + server.Ports[0] + path)).ThrowsAny();
}
[Fact]
public async Task WireMockServer_Should_respond_a_redirect_without_body()
{
// Assign
string path = $"/foo_{Guid.NewGuid()}";
string pathToRedirect = $"/bar_{Guid.NewGuid()}";
var server = WireMockServer.Start();
server
.Given(Request.Create()
.WithPath(path)
.UsingGet())
.RespondWith(Response.Create()
.WithStatusCode(307)
.WithHeader("Location", pathToRedirect));
server
.Given(Request.Create()
.WithPath(pathToRedirect)
.UsingGet())
.RespondWith(Response.Create()
.WithStatusCode(200)
.WithBody("REDIRECT SUCCESSFUL"));
// Act
var response = await new HttpClient().GetStringAsync($"http://localhost:{server.Ports[0]}{path}");
// Assert
Check.That(response).IsEqualTo("REDIRECT SUCCESSFUL");
}
[Fact]
public async Task WireMockServer_Should_delay_responses_for_a_given_route()
{
// given
var server = WireMockServer.Start();
server
.Given(Request.Create()
.WithPath("/*"))
.RespondWith(Response.Create()
.WithBody(@"{ msg: ""Hello world!""}")
.WithDelay(TimeSpan.FromMilliseconds(200)));
// when
var watch = new Stopwatch();
watch.Start();
await new HttpClient().GetStringAsync("http://localhost:" + server.Ports[0] + "/foo");
watch.Stop();
// then
Check.That(watch.ElapsedMilliseconds).IsStrictlyGreaterThan(200);
}
[Fact]
public async Task WireMockServer_Should_delay_responses()
{
// given
var server = WireMockServer.Start();
server.AddGlobalProcessingDelay(TimeSpan.FromMilliseconds(200));
server
.Given(Request.Create().WithPath("/*"))
.RespondWith(Response.Create().WithBody(@"{ msg: ""Hello world!""}"));
// when
var watch = new Stopwatch();
watch.Start();
await new HttpClient().GetStringAsync("http://localhost:" + server.Ports[0] + "/foo");
watch.Stop();
// then
Check.That(watch.ElapsedMilliseconds).IsStrictlyGreaterThan(200);
}
//Leaving commented as this requires an actual certificate with password, along with a service that expects a client certificate
//[Fact]
//public async Task Should_proxy_responses_with_client_certificate()
//{
// // given
// var _server = WireMockServer.Start();
// _server
// .Given(Request.Create().WithPath("/*"))
// .RespondWith(Response.Create().WithProxy("https://server-that-expects-a-client-certificate", @"\\yourclientcertificatecontainingprivatekey.pfx", "yourclientcertificatepassword"));
// // when
// var result = await new HttpClient().GetStringAsync("http://localhost:" + _server.Ports[0] + "/someurl?someQuery=someValue");
// // then
// Check.That(result).Contains("google");
//}
[Fact]
public async Task WireMockServer_Should_exclude_restrictedResponseHeader()
{
// Assign
string path = $"/foo_{Guid.NewGuid()}";
var server = WireMockServer.Start();
server
.Given(Request.Create().WithPath(path).UsingGet())
.RespondWith(Response.Create().WithHeader("Transfer-Encoding", "chunked").WithHeader("test", "t"));
// Act
var response = await new HttpClient().GetAsync("http://localhost:" + server.Ports[0] + path);
// Assert
Check.That(response.Headers.Contains("test")).IsTrue();
Check.That(response.Headers.Contains("Transfer-Encoding")).IsFalse();
}
[Theory]
[InlineData("DELETE")]
#if !NET452
[InlineData("TRACE")]
[InlineData("GET")]
#endif
public async Task WireMockServer_Should_exclude_body_for_methods_where_body_is_definitely_disallowed(string method)
{
// Assign
string content = "hello";
var server = WireMockServer.Start();
server
.Given(Request.Create().WithBody((byte[] bodyBytes) => bodyBytes != null))
.AtPriority(0)
.RespondWith(Response.Create().WithStatusCode(400));
server
.Given(Request.Create())
.AtPriority(1)
.RespondWith(Response.Create().WithStatusCode(200));
// Act
var request = new HttpRequestMessage(new HttpMethod(method), "http://localhost:" + server.Ports[0] + "/");
request.Content = new StringContent(content);
var response = await new HttpClient().SendAsync(request);
// Assert
Check.That(response.StatusCode).Equals(HttpStatusCode.OK);
}
[Theory]
[InlineData("POST")]
[InlineData("PUT")]
[InlineData("OPTIONS")]
[InlineData("REPORT")]
[InlineData("SOME-UNKNOWN-METHOD")] // default behavior for unknown methods is to allow a body (see BodyParser.ShouldParseBody)
public async Task WireMockServer_Should_not_exclude_body_for_supported_methods(string method)
{
// Assign
string content = "hello";
var server = WireMockServer.Start();
server
.Given(Request.Create().WithBody(content))
.AtPriority(0)
.RespondWith(Response.Create().WithStatusCode(200));
server
.Given(Request.Create())
.AtPriority(1)
.RespondWith(Response.Create().WithStatusCode(400));
// Act
var request = new HttpRequestMessage(new HttpMethod(method), "http://localhost:" + server.Ports[0] + "/");
request.Content = new StringContent(content);
var response = await new HttpClient().SendAsync(request);
// Assert
Check.That(response.StatusCode).Equals(HttpStatusCode.OK);
}
[Theory]
[InlineData("application/json")]
[InlineData("application/json; charset=ascii")]
[InlineData("application/json; charset=utf-8")]
[InlineData("application/json; charset=UTF-8")]
public async Task WireMockServer_Should_AcceptPostMappingsWithContentTypeJsonAndAnyCharset(string contentType)
{
// Arrange
string message = @"{
""request"": {
""method"": ""GET"",
""url"": ""/some/thing""
},
""response"": {
""status"": 200,
""body"": ""Hello world!"",
""headers"": {
""Content-Type"": ""text/plain""
}
}
}";
var stringContent = new StringContent(message);
stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType);
var server = WireMockServer.StartWithAdminInterface();
// Act
var response = await new HttpClient().PostAsync($"{server.Urls[0]}/__admin/mappings", stringContent);
// Assert
Check.That(response.StatusCode).Equals(HttpStatusCode.Created);
Check.That(await response.Content.ReadAsStringAsync()).Contains("Mapping added");
}
}
}