示例#1
0
        /// <summary>
        /// Starts an actual web server that can process callbacks
        /// </summary>
        public static IHost Start(string url, CancellationToken cancellationToken, ICallbackReceived callbackReceived)
        {
            var host = CreateHostBuilder(new string[0], url, callbackReceived).Build();

            _ = host.RunAsync(cancellationToken);
            return(host);
        }
示例#2
0
        static IWebHostBuilder CreateWebHostBuilder(string url, ICallbackReceived callbackReceived,
                                                    bool logWebServerDetails = false)
        {
            var webBuilder = new WebHostBuilder();

            ConfigureWebHostBuilder(webBuilder, url, callbackReceived, logWebServerDetails);
            return(webBuilder);
        }
示例#3
0
        static void ConfigureWebHostBuilder(IWebHostBuilder webBuilder, string url, ICallbackReceived callbackReceived,
                                            bool logWebServerDetails = false)
        {
            var uri = new Uri(url);

            var hostAndPort = uri.Scheme + "://" + uri.Host + ":" + uri.Port;

            webBuilder.UseStartup <StressTestStartup>();
            webBuilder.UseUrls(hostAndPort);
            webBuilder.UseSetting("callback::url", url);
            webBuilder.ConfigureServices((s) => { s.AddSingleton(callbackReceived); });


            webBuilder.ConfigureAppConfiguration(cb =>
            {
                cb.AddJsonStream(new MemoryStream(Encoding.UTF8.GetBytes(logWebServerDetails ? DebugConfig : NoMSLogConfig)));
            });
        }
示例#4
0
 public CallbackController(ICallbackReceived callbackReceived)
 {
     this.callbackReceived = callbackReceived ?? throw new ArgumentException(nameof(callbackReceived));
 }
示例#5
0
 static IHostBuilder CreateHostBuilder(string[] args, string url, ICallbackReceived callbackReceived,
                                       bool logWebServerDetails = false)
 {
     return(Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder => ConfigureWebHostBuilder(webBuilder, url, callbackReceived, logWebServerDetails)));
 }
示例#6
0
        /// <summary>
        /// Returns a TestServer that mocks HttpClient and can be used in unit tests
        /// </summary>
        public static TestServer GetTestServer(string url, ICallbackReceived callbackReceived)
        {
            var hostBuilder = CreateWebHostBuilder(url, callbackReceived);

            return(new TestServer(hostBuilder));
        }