// Copyright © WireMock.Net using Stef.Validation; using WireMock.Server; using WireMock.Settings; namespace WireMock.Net.AspNetCore.Middleware; /// /// WireMockServer Instance object /// internal class WireMockServerInstance { private readonly Action _configureAction; private readonly WireMockServerSettings? _settings; /// /// Creates a new instance and provides ability to add configuration /// for the start method of /// public WireMockServerInstance(Action configure, WireMockServerSettings? settings = null) { _configureAction = Guard.NotNull(configure); _settings = settings; } /// /// Instance accessor for the /// public WireMockServer? Instance { get; private set; } /// /// Configures and starts instance for use. /// public void Start() { Instance = _settings != null ? WireMockServer.Start(_settings) : WireMockServer.Start(); _configureAction.Invoke(Instance); } /// /// Stops the /// public void Stop() { Instance?.Stop(); } }