public async Task Setup()
        {
            _configDic         = new Dictionary <string, string>();
            _unitTestingKernel = new TestingKernel <ConsoleLog>(k =>
            {
                k.Rebind <IDiscoverySourceLoader>().To <DiscoverySourceLoader>().InSingletonScope();
                k.Rebind <IEnvironment>().ToConstant(new HostEnvironment(new TestHostEnvironmentSource()));
                _consulClientMock = new ConsulClientMock();
                _consulClientMock.SetResult(new EndPointsResult {
                    EndPoints = new[] { new ConsulEndPoint {
                                            HostName = "dumy", Version = ServiceVersion
                                        } }, ActiveVersion = ServiceVersion, IsQueryDefined = true
                });
                k.Rebind <Func <string, IConsulClient> >().ToMethod(c => s => _consulClientMock);
            }, _configDic);

            _configRefresh    = _unitTestingKernel.Get <ManualConfigurationEvents>();
            _serviceDiscovery = _unitTestingKernel.Get <Func <string, ReachabilityChecker, ServiceDiscovery.ServiceDiscovery> >()("ServiceName", x => Task.FromResult(true));
        }
        public async Task Setup()
        {
            _configDic         = new Dictionary <string, string>();
            _unitTestingKernel = new TestingKernel <ConsoleLog>(k =>
            {
                k.Rebind <IDiscoverySourceLoader>().To <DiscoverySourceLoader>().InSingletonScope();
                k.Rebind <IEnvironmentVariableProvider>().To <EnvironmentVariableProvider>();
                _consulAdapterMock = Substitute.For <IConsulClient>();
                _consulAdapterMock.GetEndPoints(Arg.Any <string>()).Returns(Task.FromResult(new EndPointsResult {
                    EndPoints = new[] { new ConsulEndPoint {
                                            HostName = "dumy"
                                        } }
                }));
                k.Rebind <IConsulClient>().ToConstant(_consulAdapterMock);
            }, _configDic);

            _configRefresh    = _unitTestingKernel.Get <ManualConfigurationEvents>();
            _serviceDiscovery = _unitTestingKernel.Get <Func <string, ReachabilityChecker, ServiceDiscovery.ServiceDiscovery> >()("ServiceName", x => Task.FromResult(true));
        }
        public async Task Setup()
        {
            _configDic         = new Dictionary <string, string>();
            _unitTestingKernel = new TestingKernel <ConsoleLog>(k =>
            {
                k.Rebind <IDiscoverySourceLoader>().To <DiscoverySourceLoader>().InSingletonScope();
                k.Rebind <IEnvironmentVariableProvider>().To <EnvironmentVariableProvider>();
                _result = new EndPointsResult {
                    EndPoints = new[] { new ConsulEndPoint {
                                            HostName = "dumy", Version = ServiceVersion
                                        } }, ActiveVersion = ServiceVersion, IsQueryDefined = true
                };
                _resultChanged     = new BroadcastBlock <EndPointsResult>(null);
                _consulAdapterMock = Substitute.For <IConsulClient>();
                _consulAdapterMock.Result.Returns(_ => _result);
                _consulAdapterMock.ResultChanged.Returns(_resultChanged);
                k.Rebind <Func <string, IConsulClient> >().ToMethod(c => s => _consulAdapterMock);
            }, _configDic);

            _configRefresh    = _unitTestingKernel.Get <ManualConfigurationEvents>();
            _serviceDiscovery = _unitTestingKernel.Get <Func <string, ReachabilityChecker, ServiceDiscovery.ServiceDiscovery> >()("ServiceName", x => Task.FromResult(true));
        }