コード例 #1
0
        public async void FluentMockServer_LogEntriesChanged_WithException_Should_LogError()
        {
            // Assign
            string path       = $"/log_{Guid.NewGuid()}";
            var    loggerMock = new Mock <IWireMockLogger>();

            loggerMock.Setup(l => l.Error(It.IsAny <string>(), It.IsAny <object[]>()));
            var settings = new FluentMockServerSettings
            {
                Logger = loggerMock.Object
            };
            var server = FluentMockServer.Start(settings);

            server
            .Given(Request.Create()
                   .WithPath(path)
                   .UsingGet())
            .RespondWith(Response.Create()
                         .WithBody(@"{ msg: ""Hello world!""}"));

            server.LogEntriesChanged += (sender, args) => throw new Exception();

            // Act
            await new HttpClient().GetAsync($"http://localhost:{server.Ports[0]}{path}");

            // Assert
            loggerMock.Verify(l => l.Error(It.IsAny <string>(), It.IsAny <object[]>()), Times.Once);
        }
コード例 #2
0
        internal static async Task <FluentMockServer> StartServerAsync()
        {
            var settings = new FluentMockServerSettings()
            {
                StartTimeout = 2000
            };
            var server = FluentMockServer.Start(settings);
            // We've sometimes seen some instability in FluentMockServer that causes the server to not really be
            // ready when Start() returns, so we'll poll it to make sure.
            int nAttempts = 0;

            using (var client = new HttpClient())
            {
                while (true)
                {
                    try
                    {
                        await client.GetAsync(server.Urls[0]);

                        break;
                    }
                    catch (HttpRequestException)
                    {
                        if (nAttempts++ > 10)
                        {
                            throw new Exception("Test HTTP server did not become available within a reasonable time");
                        }
                        await Task.Delay(50);
                    }
                }
            }
            server.ResetLogEntries();
            return(server);
        }
コード例 #3
0
        public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_in_proxied_response()
        {
            // Assign
            var settings = new FluentMockServerSettings {
                AllowPartialMapping = false
            };

            _serverForProxyForwarding = FluentMockServer.Start(settings);
            _serverForProxyForwarding
            .Given(Request.Create().WithPath("/*"))
            .RespondWith(Response.Create()
                         .WithStatusCode(HttpStatusCode.Redirect)
                         .WithHeader("Location", _serverForProxyForwarding.Urls[0] + "testpath"));

            _server = FluentMockServer.Start(settings);
            _server
            .Given(Request.Create().WithPath("/prx"))
            .RespondWith(Response.Create().WithProxy(_serverForProxyForwarding.Urls[0]));

            // Act
            var requestMessage = new HttpRequestMessage
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(_server.Urls[0] + "/prx")
            };
            var httpClientHandler = new HttpClientHandler {
                AllowAutoRedirect = false
            };
            var response = await new HttpClient(httpClientHandler).SendAsync(requestMessage);

            // Assert
            Check.That(response.Headers.Contains("Location")).IsTrue();
            Check.That(response.Headers.GetValues("Location")).ContainsExactly(_server.Urls[0] + "testpath");
        }
コード例 #4
0
        public async Task FluentMockServer_Proxy_Should_log_proxied_requests()
        {
            // Assign
            var settings = new FluentMockServerSettings
            {
                ProxyAndRecordSettings = new ProxyAndRecordSettings
                {
                    Url               = "http://www.google.com",
                    SaveMapping       = true,
                    SaveMappingToFile = false
                }
            };
            var server = FluentMockServer.Start(settings);

            // Act
            var requestMessage = new HttpRequestMessage
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(server.Urls[0])
            };
            var httpClientHandler = new HttpClientHandler {
                AllowAutoRedirect = false
            };

            await new HttpClient(httpClientHandler).SendAsync(requestMessage);

            // Assert
            Check.That(server.Mappings).HasSize(2);
            Check.That(server.LogEntries).HasSize(1);
        }
コード例 #5
0
        public static FluentMockServer Start([NotNull] string[] args, [CanBeNull] IWireMockLogger logger = null)
        {
            Check.NotNull(args, nameof(args));

            var parser = new SimpleCommandLineParser();

            parser.Parse(args);

            var settings = new FluentMockServerSettings
            {
                StartAdminInterface          = parser.GetBoolValue("StartAdminInterface", true),
                ReadStaticMappings           = parser.GetBoolValue("ReadStaticMappings"),
                WatchStaticMappings          = parser.GetBoolValue("WatchStaticMappings"),
                AllowPartialMapping          = parser.GetBoolValue("AllowPartialMapping"),
                AdminUsername                = parser.GetStringValue("AdminUsername"),
                AdminPassword                = parser.GetStringValue("AdminPassword"),
                MaxRequestLogCount           = parser.GetIntValue("MaxRequestLogCount"),
                RequestLogExpirationDuration = parser.GetIntValue("RequestLogExpirationDuration"),
                AllowCSharpCodeMatcher       = parser.GetBoolValue("AllowCSharpCodeMatcher"),
            };

            if (logger != null)
            {
                settings.Logger = logger;
            }

            if (parser.GetStringValue("WireMockLogger") == "WireMockConsoleLogger")
            {
                settings.Logger = new WireMockConsoleLogger();
            }

            if (parser.Contains("Port"))
            {
                settings.Port = parser.GetIntValue("Port");
            }
            else
            {
                settings.Urls = parser.GetValues("Urls", new[] { "http://*:9091/" });
            }

            string proxyURL = parser.GetStringValue("ProxyURL");

            if (!string.IsNullOrEmpty(proxyURL))
            {
                settings.ProxyAndRecordSettings = new ProxyAndRecordSettings
                {
                    Url               = proxyURL,
                    SaveMapping       = parser.GetBoolValue("SaveMapping"),
                    SaveMappingToFile = parser.GetBoolValue("SaveMappingToFile"),
                    ClientX509Certificate2ThumbprintOrSubjectName = parser.GetStringValue("ClientX509Certificate2ThumbprintOrSubjectName"),
                    BlackListedHeaders = parser.GetValues("BlackListedHeaders"),
                    BlackListedCookies = parser.GetValues("BlackListedCookies")
                };
            }

            settings.Logger.Debug("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'")));

            return(Start(settings));
        }
コード例 #6
0
        public static WireMockServer Start([NotNull] FluentMockServerSettings 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);
        }
コード例 #7
0
        public async Task FluentMockServer_Proxy_Should_exclude_blacklisted_cookies_in_mapping()
        {
            // Assign
            string path = $"/prx_{Guid.NewGuid().ToString()}";
            var    serverForProxyForwarding = FluentMockServer.Start();

            serverForProxyForwarding
            .Given(Request.Create().WithPath(path))
            .RespondWith(Response.Create());

            var settings = new FluentMockServerSettings
            {
                ProxyAndRecordSettings = new ProxyAndRecordSettings
                {
                    Url                = serverForProxyForwarding.Urls[0],
                    SaveMapping        = true,
                    SaveMappingToFile  = false,
                    BlackListedCookies = new[] { "ASP.NET_SessionId" }
                }
            };
            var server         = FluentMockServer.Start(settings);
            var defaultMapping = server.Mappings.First();

            // Act
            var requestMessage = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri($"{server.Urls[0]}{path}"),
                Content    = new StringContent("stringContent")
            };

            var cookieContainer = new CookieContainer(3);

            cookieContainer.Add(new Uri("http://localhost"), new Cookie("ASP.NET_SessionId", "exact_match"));
            cookieContainer.Add(new Uri("http://localhost"), new Cookie("AsP.NeT_SessIonID", "case_mismatch"));
            cookieContainer.Add(new Uri("http://localhost"), new Cookie("GoodCookie", "I_should_pass"));

            var handler = new HttpClientHandler {
                CookieContainer = cookieContainer
            };

            await new HttpClient(handler).SendAsync(requestMessage);

            // Assert
            var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid);

            Check.That(mapping).IsNotNull();

            var matchers = ((Request)mapping.RequestMatcher).GetRequestMessageMatchers <RequestMessageCookieMatcher>().Select(m => m.Name).ToList();

            Check.That(matchers).Not.Contains("ASP.NET_SessionId");
            Check.That(matchers).Not.Contains("AsP.NeT_SessIonID");
            Check.That(matchers).Contains("GoodCookie");
        }
コード例 #8
0
        public static FluentMockServer Start([NotNull] string[] args)
        {
            Check.NotNull(args, nameof(args));

            Console.WriteLine("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'")));

            var parser = new SimpleCommandLineParser();

            parser.Parse(args);

            var settings = new FluentMockServerSettings
            {
                StartAdminInterface          = parser.GetBoolValue("StartAdminInterface", true),
                ReadStaticMappings           = parser.GetBoolValue("ReadStaticMappings"),
                AllowPartialMapping          = parser.GetBoolValue("AllowPartialMapping", true),
                AdminUsername                = parser.GetStringValue("AdminUsername"),
                AdminPassword                = parser.GetStringValue("AdminPassword"),
                MaxRequestLogCount           = parser.GetIntValue("MaxRequestLogCount"),
                RequestLogExpirationDuration = parser.GetIntValue("RequestLogExpirationDuration"),
            };

            if (parser.Contains("Port"))
            {
                settings.Port = parser.GetIntValue("Port");
            }
            else
            {
                settings.Urls = parser.GetValues("Urls", new[] { "http://*:9091/" });
            }

            string proxyURL = parser.GetStringValue("ProxyURL");

            if (!string.IsNullOrEmpty(proxyURL))
            {
                settings.ProxyAndRecordSettings = new ProxyAndRecordSettings
                {
                    Url               = proxyURL,
                    SaveMapping       = parser.GetBoolValue("SaveMapping"),
                    SaveMappingToFile = parser.GetBoolValue("SaveMappingToFile"),
                    X509Certificate2ThumbprintOrSubjectName = parser.GetStringValue("X509Certificate2ThumbprintOrSubjectName")
                };
            }

            Console.WriteLine("WireMock.Net server settings {0}", JsonConvert.SerializeObject(settings, Formatting.Indented));

            FluentMockServer server = Start(settings);

            Console.WriteLine("WireMock.Net server listening at {0}", string.Join(" and ", server.Urls));

            return(server);
        }
コード例 #9
0
        private WireMockServer SetupMockedServer()
        {
            FluentMockServerSettings settings = new FluentMockServerSettings()
            {
                Urls = new[] { _testSupportConfigurationOptions.ServerMockUrl },
                ReadStaticMappings = true,
            };

            WireMockServer mockServer = WireMockServer.Start(settings);

            mockServer.ReadStaticMappings("Mappings/");

            return(mockServer);
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: baidarka/WireMock.Net
        static void Main(string[] args)
        {
            var options = new Options();
            var parser  = new CommandLineParser.CommandLineParser();

            parser.ExtractArgumentAttributes(options);

            try
            {
                parser.ParseCommandLine(args);

                if (!options.Urls.Any())
                {
                    options.Urls.Add("http://localhost:9090/");
                }

                var settings = new FluentMockServerSettings
                {
                    Urls = options.Urls.ToArray(),
                    StartAdminInterface = options.StartAdminInterface,
                    ReadStaticMappings  = options.ReadStaticMappings,
                };

                if (!string.IsNullOrEmpty(options.ProxyURL))
                {
                    settings.ProxyAndRecordSettings = new ProxyAndRecordSettings
                    {
                        Url         = options.ProxyURL,
                        SaveMapping = options.SaveMapping
                    };
                }

                var server = FluentMockServer.Start(settings);
                if (options.AllowPartialMapping)
                {
                    server.AllowPartialMapping();
                }

                Console.WriteLine("WireMock.Net server listening at {0}", string.Join(" and ", server.Urls));
            }
            catch (CommandLineException e)
            {
                Console.WriteLine(e.Message);
                parser.ShowUsage();
            }

            Console.WriteLine("Press any key to stop the server");
            Console.ReadKey();
        }
コード例 #11
0
        public async Task FluentMockServer_Proxy_Should_preserve_content_header_in_proxied_request()
        {
            // Assign
            string path = $"/prx_{Guid.NewGuid().ToString()}";
            var    serverForProxyForwarding = FluentMockServer.Start();

            serverForProxyForwarding
            .Given(Request.Create().WithPath(path))
            .RespondWith(Response.Create());

            var settings = new FluentMockServerSettings
            {
                ProxyAndRecordSettings = new ProxyAndRecordSettings
                {
                    Url               = serverForProxyForwarding.Urls[0],
                    SaveMapping       = true,
                    SaveMappingToFile = false
                }
            };
            var server = FluentMockServer.Start(settings);

            // Act
            var requestMessage = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri($"{server.Urls[0]}{path}"),
                Content    = new StringContent("stringContent", Encoding.ASCII)
            };

            requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");
            requestMessage.Content.Headers.Add("bbb", "test");
            await new HttpClient().SendAsync(requestMessage);

            // Assert
            var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage;

            Check.That(receivedRequest.BodyData.BodyAsString).IsEqualTo("stringContent");
            Check.That(receivedRequest.Headers).ContainsKey("Content-Type");
            Check.That(receivedRequest.Headers["Content-Type"].First()).Contains("text/plain");
            Check.That(receivedRequest.Headers).ContainsKey("bbb");

            // check that new proxied mapping is added
            Check.That(server.Mappings).HasSize(2);

            //var newMapping = _server.Mappings.First(m => m.Guid != guid);
            //var matcher = ((Request)newMapping.RequestMatcher).GetRequestMessageMatchers<RequestMessageHeaderMatcher>().FirstOrDefault(m => m.Name == "bbb");
            //Check.That(matcher).IsNotNull();
        }
コード例 #12
0
        public void FluentMockServer_Admin_WatchStaticMappings()
        {
            // Assign
            var fileMock = new Mock <IFileSystemHandler>();
            var settings = new FluentMockServerSettings
            {
                FileSystemHandler = fileMock.Object
            };
            var server = FluentMockServer.Start(settings);

            // Act
            server.WatchStaticMappings();

            // Verify
            fileMock.Verify(f => f.GetMappingFolder(), Times.Once);
            fileMock.Verify(f => f.FolderExists(It.IsAny <string>()), Times.Once);
        }
コード例 #13
0
        public async Task FluentMockServer_Proxy_Should_exclude_blacklisted_content_header_in_mapping()
        {
            // given
            _serverForProxyForwarding = FluentMockServer.Start();
            _serverForProxyForwarding
            .Given(Request.Create().WithPath("/*"))
            .RespondWith(Response.Create());

            var settings = new FluentMockServerSettings
            {
                ProxyAndRecordSettings = new ProxyAndRecordSettings
                {
                    Url                = _serverForProxyForwarding.Urls[0],
                    SaveMapping        = true,
                    SaveMappingToFile  = false,
                    BlackListedHeaders = new[] { "blacklisted" }
                }
            };

            _server = FluentMockServer.Start(settings);
            //_server
            //    .Given(Request.Create().WithPath("/*"))
            //    .RespondWith(Response.Create());

            // when
            var requestMessage = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri(_server.Urls[0]),
                Content    = new StringContent("stringContent")
            };

            requestMessage.Headers.Add("blacklisted", "test");
            requestMessage.Headers.Add("ok", "ok-value");
            await new HttpClient().SendAsync(requestMessage);

            // then
            var receivedRequest = _serverForProxyForwarding.LogEntries.First().RequestMessage;

            Check.That(receivedRequest.Headers).Not.ContainsKey("bbb");
            Check.That(receivedRequest.Headers).ContainsKey("ok");

            //var mapping = _server.Mappings.Last();
            //var matcher = ((Request)mapping.RequestMatcher).GetRequestMessageMatchers<RequestMessageHeaderMatcher>().FirstOrDefault(m => m.Name == "bbb");
            //Check.That(matcher).IsNull();
        }
コード例 #14
0
        public CustomWebApplicationFactory()
        {
            var settings = new FluentMockServerSettings
            {
                AllowPartialMapping = false,
                StartAdminInterface = true,
                Port = 5001
            };

            WireMockServer = StandAloneApp.Start(settings);
            MongoDb        = new MongoClient(Runner.ConnectionString).GetDatabase("ServiceName");

            MessageReceiver = new MessageHelper(InMemoryBus);
            //mock consul request
            WireMockServer.Given(Request.Create().WithPath("/v1/kv/ServiceName")
                                 .UsingGet())
            .RespondWith(WireMock.ResponseBuilders.Response.Create().WithNotFound());
        }
コード例 #15
0
        public async Task FluentMockServer_Proxy_Should_exclude_blacklisted_content_header_in_mapping()
        {
            // Assign
            string path = $"/prx_{Guid.NewGuid().ToString()}";
            var    serverForProxyForwarding = FluentMockServer.Start();

            serverForProxyForwarding
            .Given(Request.Create().WithPath(path))
            .RespondWith(Response.Create());

            var settings = new FluentMockServerSettings
            {
                ProxyAndRecordSettings = new ProxyAndRecordSettings
                {
                    Url                = serverForProxyForwarding.Urls[0],
                    SaveMapping        = true,
                    SaveMappingToFile  = false,
                    BlackListedHeaders = new[] { "blacklisted" }
                }
            };
            var server         = FluentMockServer.Start(settings);
            var defaultMapping = server.Mappings.First();

            // Act
            var requestMessage = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri($"{server.Urls[0]}{path}"),
                Content    = new StringContent("stringContent")
            };

            requestMessage.Headers.Add("blacklisted", "exact_match");
            requestMessage.Headers.Add("ok", "ok-value");
            await new HttpClient().SendAsync(requestMessage);

            // Assert
            var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid);

            Check.That(mapping).IsNotNull();
            var matchers = ((Request)mapping.RequestMatcher).GetRequestMessageMatchers <RequestMessageHeaderMatcher>().Select(m => m.Name).ToList();

            Check.That(matchers).Not.Contains("blacklisted");
            Check.That(matchers).Contains("ok");
        }
コード例 #16
0
        static void Main(string[] args)
        {
            int port;

            if (args.Length == 0 || !int.TryParse(args[0], out port))
            {
                port = 8080;
            }
            var settings = new FluentMockServerSettings
            {
                Port = port
            };

            var server = FluentMockServer.Start(settings);

            server.Given(Request.Create().WithUrl(u => u.Contains("medium_gz")).UsingGet())
            .RespondWith(Response.Create()
                         .WithStatusCode(200)
                         .WithHeader("Content-Type", "text/plain")
                         .WithHeader("Content-Encoding", "gzip")
                         .WithBodyFromFile("stations_medium.ion.gz", true));


            server.Given(Request.Create().WithUrl(u => u.Contains("small")).UsingGet())
            .RespondWith(Response.Create()
                         .WithStatusCode(200)
                         .WithHeader("Content-Type", "text/plain")
                         .WithBodyFromFile("stations_small.ion", true));

            server.Given(Request.Create().WithUrl(u => u.Contains("large")).UsingGet())
            .RespondWith(Response.Create()
                         .WithStatusCode(200)
                         .WithHeader("Content-Type", "text/plain")
                         .WithBodyFromFile("stations_large.ion", true));

            server.Given(Request.Create().WithUrl(u => u.Contains("medium")).UsingGet())
            .RespondWith(Response.Create()
                         .WithStatusCode(200)
                         .WithHeader("Content-Type", "text/plain")
                         .WithBodyFromFile("stations_medium.ion", true));

            Console.WriteLine("Press any key to stop the server");
            Console.ReadKey();
        }
コード例 #17
0
        public bool Start(HostControl hostControl)
        {
            _logger.Debug("Starting...");

            var handleBarTransformers = new List <IHandleBarTransformer>();

            try
            {
                var currentAssembly = Assembly.LoadFrom(_assemblyFile);
                var item            = currentAssembly.GetType(_typeName);
                handleBarTransformers.Add((IHandleBarTransformer)Activator.CreateInstance(item));
            }
            catch (Exception ex)
            {
                // ignored
            }


            var settings = new FluentMockServerSettings()
            {
                UseSSL              = _useSsl,
                Port                = _port,
                ReadStaticMappings  = true,
                WatchStaticMappings = true,
                WatchStaticMappingsInSubdirectories = true,
                AllowPartialMapping = true,
                StartAdminInterface = true,
                Logger            = _logger,
                FileSystemHandler = _fileHandler,
                HandlebarsRegistrationCallback = (a, b) =>
                {
                    foreach (var handleBarTransformer in handleBarTransformers)
                    {
                        a.RegisterHelper(handleBarTransformer.Name, handleBarTransformer.Render);
                    }
                }
            };

            _server = StandAloneApp.Start(settings);
            _logger.Debug("Started");
            return(true);
        }
コード例 #18
0
ファイル: Program.cs プロジェクト: ncujeri/Playground
        static void Main(string[] args)
        {
            Console.WriteLine("Starting WireMock.");

            var settings = new FluentMockServerSettings
            {
                ReadStaticMappings  = true,
                WatchStaticMappings = true,
                StartAdminInterface = true,
            };

            StandAloneApp.Start(settings);

            //var server = StandAloneApp.Start(settings);
            //server.ReadStaticMappings("CustomMappingFolder\\GetMapping");
            //server.WatchStaticMappings("CustomMappingFolder\\GetMapping");

            Console.WriteLine("WireMock started");
            Console.ReadLine();
        }
コード例 #19
0
        private void SetupMockWebServices(IKernel services)
        {
            ISettingsProvider settingsProvider = services.Get <ISettingsProvider>();
            string            abnUrl           = settingsProvider.Get("abnservice");

            IFluentMockServerSettings mockServerSettings = new FluentMockServerSettings
            {
                Urls = new[]
                {
                    abnUrl
                }
            };

            services.Bind <IFluentMockServerSettings>()
            .ToConstant(mockServerSettings)
            .InTransientScope();

            IHttpMock httpMock = services.Get <IHttpMock>();

            httpMock.SetupRequest(Request.Create().WithPath("/validate").UsingGet(), Response.Create().WithBody("Test"));
        }
コード例 #20
0
        public static void Main(string[] args)
        {
            var settings = new FluentMockServerSettings
            {
                AllowPartialMapping = false,
                StartAdminInterface = true,
                Port = 5555
            };
            var server = StandAloneApp.Start(settings);

            Console.WriteLine("FluentMockServer running at {0}", server.Ports.Single());

            server.Given(Request.Create().UsingGet().WithPath("/api"))
            .RespondWith(Response.Create().WithBodyAsJson(
                             new
            {
                Message = "Welcome to the stub API"
            }));

            BuildWebHost(args).Run();
        }
コード例 #21
0
        public void FluentMockServer_Admin_ReadStaticMappings_FolderDoesNotExist()
        {
            // Assign
            var loggerMock = new Mock <IWireMockLogger>();

            loggerMock.Setup(l => l.Info(It.IsAny <string>(), It.IsAny <object[]>()));
            var settings = new FluentMockServerSettings
            {
                Logger = loggerMock.Object
            };
            var server = FluentMockServer.Start(settings);

            // Act
            server.ReadStaticMappings(Guid.NewGuid().ToString());

            // Assert
            Check.That(server.Mappings).HasSize(0);

            // Verify
            loggerMock.Verify(l => l.Info(It.Is <string>(s => s.StartsWith("The Static Mapping folder")), It.IsAny <object[]>()), Times.Once);
        }
コード例 #22
0
        private FluentMockServer(FluentMockServerSettings settings)
        {
            if (settings.Urls != null)
            {
                Urls = settings.Urls;
            }
            else
            {
                int port = settings.Port > 0 ? settings.Port.Value : PortUtil.FindFreeTcpPort();
                Urls = new[] { (settings.UseSSL == true ? "https" : "http") + "://localhost:" + port + "/" };
            }

#if NET45
            _httpServer = new OwinSelfHost(_options, Urls);
#else
            _httpServer = new AspNetCoreSelfHost(_options, Urls);
#endif
            Ports = _httpServer.Ports;

            _httpServer.StartAsync();

            if (settings.StartAdminInterface == true)
            {
                InitAdmin();
            }

            if (settings.ReadStaticMappings == true)
            {
                ReadStaticMappings();
            }

            if (settings.ProxyAndRecordSettings != null)
            {
                InitProxyAndRecord(settings.ProxyAndRecordSettings);
            }
        }
コード例 #23
0
        public static FluentMockServer Start(FluentMockServerSettings settings)
        {
            Check.NotNull(settings, nameof(settings));

            return(new FluentMockServer(settings));
        }