public async Task Logs_Are_Sent_To_Client_From_Server_Respecting_SetMinimumLevel()
        {
            var logs = new ConcurrentBag <LogMessageParams>();

            var(client, server) = await Initialize(
                options => { },
                options =>
            {
                options.ConfigureLogging(
                    z => z
                    .AddLanguageProtocolLogging()
                    .SetMinimumLevel(LogLevel.Warning)
                    );
            }
                );

            await SettleNext();

            using var _ = client.Register(r => r.OnLogMessage(x => { logs.Add(x); }));

            var logger = server.GetRequiredService <ILogger <ILanguageServer> >();

            logger.LogCritical("holy cow!");
            logger.LogError("Something bad happened...");
            logger.LogInformation("Here's something cool...");
            logger.LogWarning("Uh-oh...");
            logger.LogTrace("Just gotta let you trace!");
            logger.LogDebug("Just gotta let you debug!");

            await logs.DelayUntilCount(3, CancellationToken);

            await SettleNext();

            var items = logs.Take(3).ToList();

            items.Should().HaveCount(3);
            items.Where(z => z.Type == MessageType.Error).Should().HaveCount(2);
            items.Where(z => z.Type == MessageType.Info).Should().HaveCount(0);
            items.Where(z => z.Type == MessageType.Warning).Should().HaveCount(1);
            items.Where(z => z.Type == MessageType.Log).Should().HaveCount(0);
        }