mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-20 07:51:41 +02:00
@@ -3,7 +3,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Description>Lightweight StandAlone Http Mocking Server for .Net.</Description>
|
<Description>Lightweight StandAlone Http Mocking Server for .Net.</Description>
|
||||||
<AssemblyTitle>WireMock.Net.StandAlone</AssemblyTitle>
|
<AssemblyTitle>WireMock.Net.StandAlone</AssemblyTitle>
|
||||||
<Version>1.0.3.1</Version>
|
<Version>1.0.3.2</Version>
|
||||||
<Authors>Stef Heyenrath</Authors>
|
<Authors>Stef Heyenrath</Authors>
|
||||||
<TargetFrameworks>net452;net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
<TargetFrameworks>net452;net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace WireMock.Owin
|
|||||||
RequestMatchResult requestMatchResult = null;
|
RequestMatchResult requestMatchResult = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
foreach (var mapping in _options.Mappings.Where(m => m?.Scenario != null))
|
foreach (var mapping in _options.Mappings.Values.Where(m => m?.Scenario != null))
|
||||||
{
|
{
|
||||||
// Set start
|
// Set start
|
||||||
if (!_options.Scenarios.ContainsKey(mapping.Scenario) && mapping.IsStartState)
|
if (!_options.Scenarios.ContainsKey(mapping.Scenario) && mapping.IsStartState)
|
||||||
@@ -64,7 +64,7 @@ namespace WireMock.Owin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var mappings = _options.Mappings
|
var mappings = _options.Mappings.Values
|
||||||
.Select(m => new
|
.Select(m => new
|
||||||
{
|
{
|
||||||
Mapping = m,
|
Mapping = m,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace WireMock.Owin
|
|||||||
|
|
||||||
public bool AllowPartialMapping { get; set; }
|
public bool AllowPartialMapping { get; set; }
|
||||||
|
|
||||||
public IList<Mapping> Mappings { get; set; } = new List<Mapping>();
|
public IDictionary<Guid, Mapping> Mappings { get; set; } = new ConcurrentDictionary<Guid, Mapping>();
|
||||||
|
|
||||||
public ObservableCollection<LogEntry> LogEntries { get; } = new ConcurentObservableCollection<LogEntry>();
|
public ObservableCollection<LogEntry> LogEntries { get; } = new ConcurentObservableCollection<LogEntry>();
|
||||||
|
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ namespace WireMock.Server
|
|||||||
if (settings.SaveMapping)
|
if (settings.SaveMapping)
|
||||||
{
|
{
|
||||||
var mapping = ToMapping(requestMessage, responseMessage, settings.BlackListedHeaders ?? new string[] { });
|
var mapping = ToMapping(requestMessage, responseMessage, settings.BlackListedHeaders ?? new string[] { });
|
||||||
_options.Mappings.Add(mapping);
|
_options.Mappings.Add(mapping.Guid, mapping);
|
||||||
|
|
||||||
if (settings.SaveMappingToFile)
|
if (settings.SaveMappingToFile)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace WireMock.Server
|
|||||||
/// Gets the mappings.
|
/// Gets the mappings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public IEnumerable<Mapping> Mappings => new ReadOnlyCollection<Mapping>(_options.Mappings);
|
public IEnumerable<Mapping> Mappings => _options.Mappings.Values.ToArray();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the scenarios.
|
/// Gets the scenarios.
|
||||||
@@ -273,7 +273,10 @@ namespace WireMock.Server
|
|||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public void ResetMappings()
|
public void ResetMappings()
|
||||||
{
|
{
|
||||||
_options.Mappings = _options.Mappings.Where(m => m.IsAdminInterface).ToList();
|
foreach (var nonAdmin in _options.Mappings.Where(m => !m.Value.IsAdminInterface))
|
||||||
|
{
|
||||||
|
_options.Mappings.Remove(nonAdmin);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -284,25 +287,19 @@ namespace WireMock.Server
|
|||||||
public bool DeleteMapping(Guid guid)
|
public bool DeleteMapping(Guid guid)
|
||||||
{
|
{
|
||||||
// Check a mapping exists with the same GUID, if so, remove it.
|
// Check a mapping exists with the same GUID, if so, remove it.
|
||||||
return DeleteMapping(m => m.Guid == guid);
|
if (_options.Mappings.ContainsKey(guid))
|
||||||
|
{
|
||||||
|
return _options.Mappings.Remove(guid);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool DeleteMapping(string path)
|
private bool DeleteMapping(string path)
|
||||||
{
|
{
|
||||||
// Check a mapping exists with the same path, if so, remove it.
|
// Check a mapping exists with the same path, if so, remove it.
|
||||||
return DeleteMapping(m => string.Equals(m.Path, path, StringComparison.OrdinalIgnoreCase));
|
var mapping = _options.Mappings.FirstOrDefault(entry => string.Equals(entry.Value.Path, path, StringComparison.OrdinalIgnoreCase));
|
||||||
}
|
return DeleteMapping(mapping.Key);
|
||||||
|
|
||||||
private bool DeleteMapping(Func<Mapping, bool> predicate)
|
|
||||||
{
|
|
||||||
var existingMapping = _options.Mappings.FirstOrDefault(predicate);
|
|
||||||
if (existingMapping != null)
|
|
||||||
{
|
|
||||||
_options.Mappings.Remove(existingMapping);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -393,14 +390,13 @@ namespace WireMock.Server
|
|||||||
private void RegisterMapping(Mapping mapping)
|
private void RegisterMapping(Mapping mapping)
|
||||||
{
|
{
|
||||||
// Check a mapping exists with the same Guid, if so, replace it.
|
// Check a mapping exists with the same Guid, if so, replace it.
|
||||||
var existingMapping = _options.Mappings.FirstOrDefault(m => m.Guid == mapping.Guid);
|
if (_options.Mappings.ContainsKey(mapping.Guid))
|
||||||
if (existingMapping != null)
|
|
||||||
{
|
{
|
||||||
_options.Mappings[_options.Mappings.IndexOf(existingMapping)] = mapping;
|
_options.Mappings[mapping.Guid] = mapping;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_options.Mappings.Add(mapping);
|
_options.Mappings.Add(mapping.Guid, mapping);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Description>Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape.</Description>
|
<Description>Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape.</Description>
|
||||||
<AssemblyTitle>WireMock.Net</AssemblyTitle>
|
<AssemblyTitle>WireMock.Net</AssemblyTitle>
|
||||||
<Version>1.0.3.1</Version>
|
<Version>1.0.3.2</Version>
|
||||||
<Authors>Alexandre Victoor;Stef Heyenrath</Authors>
|
<Authors>Alexandre Victoor;Stef Heyenrath</Authors>
|
||||||
<TargetFrameworks>net452;net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
<TargetFrameworks>net452;net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ namespace WireMock.Net.Tests
|
|||||||
var result = await new HttpClient().GetStringAsync("http://localhost:" + _server.Ports[0] + "/search?q=test");
|
var result = await new HttpClient().GetStringAsync("http://localhost:" + _server.Ports[0] + "/search?q=test");
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
Check.That(_server.Mappings).HasSize(1);
|
||||||
Check.That(result).Contains("google");
|
Check.That(result).Contains("google");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,9 +54,6 @@ namespace WireMock.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
_server = FluentMockServer.Start(settings);
|
_server = FluentMockServer.Start(settings);
|
||||||
_server
|
|
||||||
.Given(Request.Create().WithPath("/*"))
|
|
||||||
.RespondWith(Response.Create().WithProxy(_serverForProxyForwarding.Urls[0]));
|
|
||||||
|
|
||||||
// when
|
// when
|
||||||
var requestMessage = new HttpRequestMessage
|
var requestMessage = new HttpRequestMessage
|
||||||
@@ -75,9 +73,12 @@ namespace WireMock.Net.Tests
|
|||||||
Check.That(receivedRequest.Headers["Content-Type"].First()).Contains("text/plain");
|
Check.That(receivedRequest.Headers["Content-Type"].First()).Contains("text/plain");
|
||||||
Check.That(receivedRequest.Headers).ContainsKey("bbb");
|
Check.That(receivedRequest.Headers).ContainsKey("bbb");
|
||||||
|
|
||||||
var mapping = _server.Mappings.Last();
|
// check that new proxied mapping is added
|
||||||
var matcher = ((Request) mapping.RequestMatcher).GetRequestMessageMatchers<RequestMessageHeaderMatcher>().FirstOrDefault(m => m.Name == "bbb");
|
Check.That(_server.Mappings).HasSize(2);
|
||||||
Check.That(matcher).IsNotNull();
|
|
||||||
|
//var newMapping = _server.Mappings.First(m => m.Guid != guid);
|
||||||
|
//var matcher = ((Request)newMapping.RequestMatcher).GetRequestMessageMatchers<RequestMessageHeaderMatcher>().FirstOrDefault(m => m.Name == "bbb");
|
||||||
|
//Check.That(matcher).IsNotNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -100,9 +101,9 @@ namespace WireMock.Net.Tests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
_server = FluentMockServer.Start(settings);
|
_server = FluentMockServer.Start(settings);
|
||||||
_server
|
//_server
|
||||||
.Given(Request.Create().WithPath("/*"))
|
// .Given(Request.Create().WithPath("/*"))
|
||||||
.RespondWith(Response.Create());
|
// .RespondWith(Response.Create());
|
||||||
|
|
||||||
// when
|
// when
|
||||||
var requestMessage = new HttpRequestMessage
|
var requestMessage = new HttpRequestMessage
|
||||||
@@ -118,9 +119,9 @@ namespace WireMock.Net.Tests
|
|||||||
var receivedRequest = _serverForProxyForwarding.LogEntries.First().RequestMessage;
|
var receivedRequest = _serverForProxyForwarding.LogEntries.First().RequestMessage;
|
||||||
Check.That(receivedRequest.Headers).ContainsKey("bbb");
|
Check.That(receivedRequest.Headers).ContainsKey("bbb");
|
||||||
|
|
||||||
var mapping = _server.Mappings.Last();
|
//var mapping = _server.Mappings.Last();
|
||||||
var matcher = ((Request)mapping.RequestMatcher).GetRequestMessageMatchers<RequestMessageHeaderMatcher>().FirstOrDefault(m => m.Name == "bbb");
|
//var matcher = ((Request)mapping.RequestMatcher).GetRequestMessageMatchers<RequestMessageHeaderMatcher>().FirstOrDefault(m => m.Name == "bbb");
|
||||||
Check.That(matcher).IsNull();
|
//Check.That(matcher).IsNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ namespace WireMock.Net.Tests
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void FluentMockServer_Admin_Mappings_Get()
|
public void FluentMockServer_Admin_Mappings_Get()
|
||||||
{
|
{
|
||||||
var guid = Guid.Parse("90356dba-b36c-469a-a17e-669cd84f1f05");
|
Guid guid = Guid.Parse("90356dba-b36c-469a-a17e-669cd84f1f05");
|
||||||
_server = FluentMockServer.Start();
|
_server = FluentMockServer.Start();
|
||||||
|
|
||||||
_server.Given(Request.Create().WithPath("/foo1").UsingGet())
|
_server.Given(Request.Create().WithPath("/foo1").UsingGet())
|
||||||
@@ -103,12 +103,6 @@ namespace WireMock.Net.Tests
|
|||||||
|
|
||||||
var mappings = _server.Mappings.ToArray();
|
var mappings = _server.Mappings.ToArray();
|
||||||
Check.That(mappings).HasSize(2);
|
Check.That(mappings).HasSize(2);
|
||||||
|
|
||||||
Check.That(mappings.First().RequestMatcher).IsNotNull();
|
|
||||||
Check.That(mappings.First().Provider).IsNotNull();
|
|
||||||
Check.That(mappings.First().Guid).Equals(guid);
|
|
||||||
|
|
||||||
Check.That(mappings[1].Guid).Not.Equals(guid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -153,8 +147,6 @@ namespace WireMock.Net.Tests
|
|||||||
|
|
||||||
var mappings = _server.Mappings.ToArray();
|
var mappings = _server.Mappings.ToArray();
|
||||||
Check.That(mappings).HasSize(2);
|
Check.That(mappings).HasSize(2);
|
||||||
Check.That(mappings[0].Priority).Equals(2);
|
|
||||||
Check.That(mappings[1].Priority).Equals(1);
|
|
||||||
|
|
||||||
// when
|
// when
|
||||||
var response = await new HttpClient().GetAsync("http://localhost:" + _server.Ports[0] + "/1");
|
var response = await new HttpClient().GetAsync("http://localhost:" + _server.Ports[0] + "/1");
|
||||||
|
|||||||
Reference in New Issue
Block a user