diff --git a/README.md b/README.md index cbf918d4..0803ea91 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # WireMock.Net A C# .NET version based on [mock4net](https://github.com/alexvictoor/mock4net) which mimics the functionality from the JAVA based http://WireMock.org -[![Build status](https://ci.appveyor.com/api/projects/status/b3n6q3ygbww4lyls?svg=true)](https://ci.appveyor.com/project/WireMock-Net/wiremock-net) +[![Build status](https://ci.appveyor.com/api/projects/status/b3n6q3ygbww4lyls?svg=true)](https://ci.appveyor.com/project/StefH/wiremock-net) [![codecov](https://codecov.io/gh/WireMock-Net/WireMock.Net/branch/master/graph/badge.svg)](https://codecov.io/gh/WireMock-Net/WireMock.Net) [![Coverage Status](https://coveralls.io/repos/github/WireMock-Net/WireMock.Net/badge.svg?branch=master)](https://coveralls.io/github/WireMock-Net/WireMock.Net?branch=master) [![GitHub issues](https://img.shields.io/github/issues/WireMock-Net/WireMock.Net.svg)](https://github.com/WireMock-Net/WireMock.Net/issues) diff --git a/src/WireMock.Net/Client/IFluentMockServerAdmin.cs b/src/WireMock.Net/Client/IFluentMockServerAdmin.cs index 82dc2e0c..48bb2d50 100644 --- a/src/WireMock.Net/Client/IFluentMockServerAdmin.cs +++ b/src/WireMock.Net/Client/IFluentMockServerAdmin.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using WireMock.Admin.Mappings; using WireMock.Admin.Requests; using WireMock.Admin.Settings; +using WireMock.Logging; namespace WireMock.Client { @@ -103,7 +104,7 @@ namespace WireMock.Client /// /// LogRequestModels [Get("__admin/requests")] - Task> GetRequestsAsync(); + Task> GetRequestsAsync(); /// /// Delete all requests. @@ -123,7 +124,7 @@ namespace WireMock.Client /// The Guid /// MappingModel [Get("__admin/requests/{guid}")] - Task GetRequestAsync([Path] Guid guid); + Task GetRequestAsync([Path] Guid guid); /// /// Delete a request based on the guid @@ -137,7 +138,7 @@ namespace WireMock.Client /// /// The RequestModel [Post("__admin/requests/find")] - Task> FindRequestsAsync([Body] RequestModel model); + Task> FindRequestsAsync([Body] RequestModel model); /// /// Get all scenarios diff --git a/src/WireMock.Net/Server/FluentMockServer.Admin.cs b/src/WireMock.Net/Server/FluentMockServer.Admin.cs index 3ee8f64b..9acef03b 100644 --- a/src/WireMock.Net/Server/FluentMockServer.Admin.cs +++ b/src/WireMock.Net/Server/FluentMockServer.Admin.cs @@ -486,7 +486,7 @@ namespace WireMock.Server } } - var result = dict.OrderBy(x => x.Value.AverageTotalScore).Select(x => x.Key); + var result = dict.OrderBy(x => x.Value.AverageTotalScore).Select(x => x.Key).Select(ToLogEntryModel); return ToJson(result); } diff --git a/test/WireMock.Net.Tests/FluentMockServerAdminRestClientTests.cs b/test/WireMock.Net.Tests/FluentMockServerAdminRestClientTests.cs new file mode 100644 index 00000000..3e1ba093 --- /dev/null +++ b/test/WireMock.Net.Tests/FluentMockServerAdminRestClientTests.cs @@ -0,0 +1,64 @@ +using System; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using NFluent; +using RestEase; +using WireMock.Admin.Mappings; +using WireMock.Client; +using WireMock.Server; +using WireMock.Settings; +using Xunit; + +namespace WireMock.Net.Tests +{ + public class FluentMockServerAdminRestClientTests : IDisposable + { + public void Dispose() + { + _server?.Stop(); + } + + private FluentMockServer _server; + + [Fact] + public async Task IFluentMockServerAdmin_FindRequestsAsync() + { + // given + _server = FluentMockServer.Start(new FluentMockServerSettings { StartAdminInterface = true }); + var serverUrl = "http://localhost:" + _server.Ports[0]; + await new HttpClient().GetAsync(serverUrl + "/foo"); + var api = RestClient.For(serverUrl); + + // when + var requests = await api.FindRequestsAsync(new RequestModel { Methods = new[] { "get" } }); + + // then + Check.That(requests).HasSize(1); + var requestLogged = requests.First(); + Check.That(requestLogged.Request.Method).IsEqualTo("get"); + Check.That(requestLogged.Request.Body).IsNull(); + Check.That(requestLogged.Request.Path).IsEqualTo("/foo"); + } + + [Fact] + public async Task IFluentMockServerAdmin_GetRequestsAsync() + { + // given + _server = FluentMockServer.Start(new FluentMockServerSettings { StartAdminInterface = true }); + var serverUrl = "http://localhost:" + _server.Ports[0]; + await new HttpClient().GetAsync(serverUrl + "/foo"); + var api = RestClient.For(serverUrl); + + // when + var requests = await api.GetRequestsAsync(); + + // then + Check.That(requests).HasSize(1); + var requestLogged = requests.First(); + Check.That(requestLogged.Request.Method).IsEqualTo("get"); + Check.That(requestLogged.Request.Body).IsNull(); + Check.That(requestLogged.Request.Path).IsEqualTo("/foo"); + } + } +} \ No newline at end of file