public void CreateClient_OptionsRegistered_CreateClient()
        {
            // arrange
            ServiceProvider sp = new ServiceCollection()
                                 .Configure <SocketClientFactoryOptions>(
                "Foo",
                x => { })
                                 .BuildServiceProvider();
            IOptionsMonitor <SocketClientFactoryOptions> optionsMonitor =
                sp.GetRequiredService <IOptionsMonitor <SocketClientFactoryOptions> >();
            IEnumerable <ISocketProtocolFactory> protocolFactories =
                Enumerable.Empty <ISocketProtocolFactory>();
            var factory = new DefaultSocketClientFactory(optionsMonitor, protocolFactories);

            // act
            ISocketClient?client = factory.CreateClient("Foo");

            // assert
            Assert.IsType <WebSocketClient>(client);
        }
        public void CreateClient_OptionsRegistered_ApplyConfig()
        {
            // arrange
            var             uri = new Uri("wss://localhost:123");
            ServiceProvider sp  = new ServiceCollection()
                                  .Configure <SocketClientFactoryOptions>(
                "Foo",
                x => x.SocketClientActions.Add(x => x.Uri = uri))
                                  .BuildServiceProvider();
            IOptionsMonitor <SocketClientFactoryOptions> optionsMonitor =
                sp.GetRequiredService <IOptionsMonitor <SocketClientFactoryOptions> >();
            IEnumerable <ISocketProtocolFactory> protocolFactories =
                Enumerable.Empty <ISocketProtocolFactory>();
            var factory = new DefaultSocketClientFactory(optionsMonitor, protocolFactories);

            // act
            ISocketClient?client = factory.CreateClient("Foo");

            // assert
            Assert.Equal(uri, client.Uri);
        }