Inheritance: BaseWcfClientFactory
        public void TearDown()
        {
            if (_wcfClientFactory != null)
            {
                _wcfClientFactory.ClientConnected     -= OnClientConnected;
                _wcfClientFactory.ClientDisconnected  -= OnClientDisconnected;
                _wcfClientFactory.AllClientsConnected -= OnAllClientsConnected;
                _wcfClientFactory.ClientInfoChanged   -= OnClientInfoChanged;

                _wcfClientFactory.Dispose();

                _wcfClientFactory = null;
            }
        }
        public void Setup()
        {
            lock (_receivedClientInfos)
            {
                _receivedClientInfos.Clear();
            }

            _logMaintenanceCallbackEvent.Reset();
            _moduleMaintenanceCallbackEvent.Reset();
            _connectedEvent.Reset();
            _disconnectedEvent.Reset();
            _allClientsConnectedEvent.Reset();
            _clientInfoEvent.Reset();

            _versionServiceManager.EnableVersionService = true;
            _versionServiceManager.MinClientVersion     = "2.0.0.0";
            _versionServiceManager.ServerVersion        = "1.0.0.0";

            _wcfClientFactory = new TestWcfClientFactory
            {
                Logger         = new DummyLogger(),
                VersionService = _versionServiceManager
            };

            _wcfClientFactory.Initialize(new WcfClientFactoryConfig
            {
                ClientId = ClientId,
                Host     = "localhost",
                Port     = 80
            });

            _wcfClientFactory.ClientConnected     += OnClientConnected;
            _wcfClientFactory.ClientDisconnected  += OnClientDisconnected;
            _wcfClientFactory.AllClientsConnected += OnAllClientsConnected;
            _wcfClientFactory.ClientInfoChanged   += OnClientInfoChanged;
        }