diff --git a/src/WireMock.Net/Server/FluentMockServer.Admin.cs b/src/WireMock.Net/Server/FluentMockServer.Admin.cs index 4fd39c86..161b4c6c 100644 --- a/src/WireMock.Net/Server/FluentMockServer.Admin.cs +++ b/src/WireMock.Net/Server/FluentMockServer.Admin.cs @@ -32,6 +32,7 @@ namespace WireMock.Server // __admin/mappings Given(Request.Create().WithPath(AdminMappings).UsingGet()).RespondWith(new DynamicResponseProvider(MappingsGet)); Given(Request.Create().WithPath(AdminMappings).UsingPost()).RespondWith(new DynamicResponseProvider(MappingsPost)); + Given(Request.Create().WithPath(AdminMappings).UsingDelete()).RespondWith(new DynamicResponseProvider(MappingsDelete)); // __admin/mappings/{guid} Given(Request.Create().WithPath(_guidPathMatcher).UsingGet()).RespondWith(new DynamicResponseProvider(MappingGet)); @@ -111,6 +112,13 @@ namespace WireMock.Server return new ResponseMessage { Body = "Mapping added" }; } + private ResponseMessage MappingsDelete(RequestMessage requestMessage) + { + ResetMappings(); + + return new ResponseMessage { Body = "Mappings deleted" }; + } + private IRequestBuilder InitRequestBuilder(MappingModel mappingModel) { IRequestBuilder requestBuilder = Request.Create(); diff --git a/src/WireMock.Net/Server/FluentMockServer.cs b/src/WireMock.Net/Server/FluentMockServer.cs index 6d6b4f71..3cd5585f 100644 --- a/src/WireMock.Net/Server/FluentMockServer.cs +++ b/src/WireMock.Net/Server/FluentMockServer.cs @@ -20,7 +20,7 @@ namespace WireMock.Server { private readonly TinyHttpServer _httpServer; - private readonly IList _mappings = new List(); + private IList _mappings = new List(); private readonly IList _logEntries = new List(); @@ -130,9 +130,17 @@ namespace WireMock.Server _logEntries.Clear(); } + ResetMappings(); + } + + /// + /// Resets the mappings. + /// + public void ResetMappings() + { lock (((ICollection)_mappings).SyncRoot) { - _mappings.Clear(); + _mappings = _mappings.Where(m => m.Provider is DynamicResponseProvider).ToList(); } }