public void Host_StartupOk_RespondsOnHttpRequest()
        {
            const string content = "<h1>Test</h1>";

            var options = new StonehengeHostOptions
            {
                Title = "Test"
            };
            var loader = new TestResourceLoader(content);
            var host   = new KestrelHost(loader, options);

            var startOk = host.Start("localhost", 32001);

            Assert.True(startOk, "Start failed");

            var response = string.Empty;

            try
            {
                using var client = new RedirectableWebClient();
                response         = client.DownloadString(host.BaseUrl);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, nameof(Host_StartupOk_RespondsOnHttpRequest));
            }

            Assert.Equal(content, response);
            host.Terminate();
        }
        public void Host_MultipleInstances_StartupOk_RespondsOnHttpRequest()
        {
            const string content1 = "<h1>Test 01</h1>";
            const string content2 = "<h1>Test II</h1>";

            var options = new StonehengeHostOptions
            {
                Title = "Test"
            };
            var loader1 = new TestResourceLoader(content1);
            var host1   = new KestrelHost(loader1, options);

            var startOk = host1.Start("localhost", 32002);

            Assert.True(startOk, "Start host1 failed");

            var loader2 = new TestResourceLoader(content2);
            var host2   = new KestrelHost(loader2, options);

            startOk = host2.Start("localhost", 32003);
            Assert.True(startOk, "Start host2 failed");

            Assert.NotEqual(host1.BaseUrl, host2.BaseUrl);

            var response1 = string.Empty;
            var response2 = string.Empty;

            try
            {
                using (var client = new RedirectableWebClient())
                {
                    response1 = client.DownloadString(host1.BaseUrl);
                }
                using (var client = new RedirectableWebClient())
                {
                    response2 = client.DownloadString(host2.BaseUrl);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, nameof(Host_MultipleInstances_StartupOk_RespondsOnHttpRequest));
                Assert.True(false, ex.Message);
            }

            Assert.Equal(content1, response1);
            Assert.Equal(content2, response2);

            host1.Terminate();
            host2.Terminate();
        }