Summary

Class:WireMock.Net.StandAlone.StandAloneApp
Assembly:WireMock.Net.StandAlone
File(s):C:\Users\StefHeyenrath\Documents\GitHub\WireMock.Net\src\WireMock.Net.StandAlone\StandAloneApp.cs
Covered lines:0
Uncovered lines:48
Coverable lines:48
Total lines:90
Line coverage:0%
Branch coverage:0%

Metrics

MethodCyclomatic complexity NPath complexity Sequence coverage Branch coverage
Start(...)0000
Start(...)0000

File(s)

C:\Users\StefHeyenrath\Documents\GitHub\WireMock.Net\src\WireMock.Net.StandAlone\StandAloneApp.cs

#LineLine coverage
 1using System.Linq;
 2using WireMock.Server;
 3using WireMock.Settings;
 4using WireMock.Validation;
 5using JetBrains.Annotations;
 6using WireMock.Logging;
 7
 8namespace WireMock.Net.StandAlone
 9{
 10    /// <summary>
 11    /// The StandAloneApp
 12    /// </summary>
 13    public static class StandAloneApp
 14    {
 15        /// <summary>
 16        /// Start WireMock.Net standalone Server based on the FluentMockServerSettings.
 17        /// </summary>
 18        /// <param name="settings">The FluentMockServerSettings</param>
 19        [PublicAPI]
 20        public static FluentMockServer Start([NotNull] IFluentMockServerSettings settings)
 021        {
 022            Check.NotNull(settings, nameof(settings));
 23
 024            var server = FluentMockServer.Start(settings);
 25
 026            settings.Logger.Info("WireMock.Net server listening at {0}", string.Join(",", server.Urls));
 27
 028            return server;
 029        }
 30
 31        /// <summary>
 32        /// Start WireMock.Net standalone Server based on the commandline arguments.
 33        /// </summary>
 34        /// <param name="args">The commandline arguments</param>
 35        /// <param name="logger">The logger</param>
 36        [PublicAPI]
 37        public static FluentMockServer Start([NotNull] string[] args, [CanBeNull] IWireMockLogger logger = null)
 038        {
 039            Check.NotNull(args, nameof(args));
 40
 041            var parser = new SimpleCommandLineParser();
 042            parser.Parse(args);
 43
 044            var settings = new FluentMockServerSettings
 045            {
 046                StartAdminInterface = parser.GetBoolValue("StartAdminInterface", true),
 047                ReadStaticMappings = parser.GetBoolValue("ReadStaticMappings"),
 048                WatchStaticMappings = parser.GetBoolValue("WatchStaticMappings"),
 049                AllowPartialMapping = parser.GetBoolValue("AllowPartialMapping", false),
 050                AdminUsername = parser.GetStringValue("AdminUsername"),
 051                AdminPassword = parser.GetStringValue("AdminPassword"),
 052                MaxRequestLogCount = parser.GetIntValue("MaxRequestLogCount"),
 053                RequestLogExpirationDuration = parser.GetIntValue("RequestLogExpirationDuration"),
 054            };
 55
 056            if (logger != null)
 057            {
 058                settings.Logger = logger;
 059            }
 60
 061            if (parser.Contains("Port"))
 062            {
 063                settings.Port = parser.GetIntValue("Port");
 064            }
 65            else
 066            {
 067                settings.Urls = parser.GetValues("Urls", new[] { "http://*:9091/" });
 068            }
 69
 070            string proxyURL = parser.GetStringValue("ProxyURL");
 071            if (!string.IsNullOrEmpty(proxyURL))
 072            {
 073                settings.ProxyAndRecordSettings = new ProxyAndRecordSettings
 074                {
 075                    Url = proxyURL,
 076                    SaveMapping = parser.GetBoolValue("SaveMapping"),
 077                    SaveMappingToFile = parser.GetBoolValue("SaveMappingToFile"),
 078                    ClientX509Certificate2ThumbprintOrSubjectName = parser.GetStringValue("ClientX509Certificate2Thumbpr
 079                    BlackListedHeaders = parser.GetValues("BlackListedHeaders")
 080                };
 081            }
 82
 083            settings.Logger.Debug("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'")));
 84
 085            FluentMockServer server = Start(settings);
 86
 087            return server;
 088        }
 89    }
 90}