public AtemMockServerPoolItem GetCase(string caseId)
 {
     if (!_pool.TryGetValue(caseId, out AtemMockServerPoolItem item))
     {
         string bindIp = $"127.0.1.{_pool.Count + 1}";
         item = _pool[caseId] = new AtemMockServerPoolItem(caseId, StateSettings, bindIp);
     }
     return(item);
 }
        public AtemMockServerWrapper(ITestOutputHelper output, AtemServerClientPool pool, Func <Lazy <ImmutableList <ICommand> >, ICommand, IEnumerable <ICommand> > handler, string caseId)
        {
            _output  = output;
            _pool    = pool;
            _handler = handler;

            _case     = _pool.GetCase(caseId);
            SdkClient = _case.SelectSdkClient();
            Server.ActiveConnectionId = SdkClient.Id;

            var resetEvent = new ManualResetEvent(false);

            void TmpHandler(object o) => resetEvent.Set();

            SdkClient.OnSdkStateChange += TmpHandler;
            Server.ResetClient(SdkClient.Id);
            resetEvent.WaitOne(2000); // TODO - monitor result
            SdkClient.OnSdkStateChange -= TmpHandler;

            Helper = new AtemTestHelper(SdkClient, _output, _case.Server, _pool.StateSettings);
        }