using JetBrains.Annotations; using System.Linq; using WireMock.Logging; using WireMock.Server; using WireMock.Settings; using WireMock.Validation; namespace WireMock.Net.StandAlone { /// /// The StandAloneApp /// public static class StandAloneApp { /// /// Start WireMock.Net standalone Server based on the FluentMockServerSettings. /// /// The FluentMockServerSettings [PublicAPI] public static WireMockServer Start([NotNull] IWireMockServerSettings settings) { Check.NotNull(settings, nameof(settings)); var server = WireMockServer.Start(settings); settings.Logger?.Info("WireMock.Net server listening at {0}", string.Join(",", server.Urls)); return server; } /// /// Start WireMock.Net standalone Server based on the commandline arguments. /// /// The commandline arguments /// The logger [PublicAPI] public static WireMockServer Start([NotNull] string[] args, [CanBeNull] IWireMockLogger logger = null) { Check.NotNull(args, nameof(args)); var settings = WireMockServerSettingsParser.ParseArguments(args, logger); settings.Logger?.Debug("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'"))); return Start(settings); } } }