예제 #1
0
        public void SetUp()
        {
            _view = MockRepository.GenerateMock<IBigVisibleCruiseView>();

            _skinUpdateResponder = new SkinUpdateResponder(_view);
            _skinUpdateResponder.ConfigUpdated(new ConfigSettings { SkinName = NewSkin });
        }
예제 #2
0
        public void SetUp()
        {
            _webClientFactory = MockRepository.GenerateMock<IWebClientFactory>();
            _webClient = MockRepository.GenerateStub<IWebClient>();

            _webClientFactory.Expect(w => w.GetWebClient(Arg<string>.Is.Anything)).Return(_webClient).Repeat.Once();

            _configSettings = new ConfigSettings { ProjectNameRegEx = ".*" };
            _urlUpdateResponder = new UrlUpdateResponder(
                new StatusFetcher(new CruiseAddress("url"),
                    _configSettings, _webClientFactory), _configSettings, _webClientFactory);

            _configSettings.URL = "currentUrl";
        }
 public void SetUp()
 {
     _view            = MockRepository.GenerateMock <IBigVisibleCruiseView>();
     _timer           = MockRepository.GenerateMock <ICountdownTimer>();
     _updateResponder = new ShowCountdownUpdateResponder(_timer, _view);
 }
 public override bool RegisterObserver(IConfigObserver observer)
 {
     return ConfigObservers.TryAdd(observer.Name, observer);
 }
 public abstract bool RegisterObserver(IConfigObserver observer);
예제 #6
0
 public override bool RegisterObserver(IConfigObserver observer)
 {
     return(ConfigObservers.TryAdd(observer.Name, observer));
 }
예제 #7
0
 public void AddObserver(IConfigObserver observer)
 {
     _observers.Add(observer);
 }
        /// <summary>
        /// Registers an <see cref="IConfigObserver"/> object, which is notified when a configuration changes.
        /// </summary>
        /// <param name="observer">The <see cref="IConfigObserver"/> that will be notified when a configuration
        /// update occurs. These are Memcached and Couchbase Buckets.</param>
        /// <returns>True if the observer was registered without failure.</returns>
        public override bool RegisterObserver(IConfigObserver observer)
        {
            RegisterEvent.WaitOne(10000);//TODO make configurable
            var hasRegistered = false;

            try
            {
                var bucketConfig = _serverConfig.Buckets.Find(x => x.Name == observer.Name);
                if (bucketConfig == null)
                {
                    throw new BucketNotFoundException(observer.Name);
                }

                var cancellationTokenSource = new CancellationTokenSource();
                _cancellationTokens[observer.Name] = cancellationTokenSource;

                var configThreadState = new ConfigThreadState(bucketConfig, ConfigChangedHandler, ErrorOccurredHandler,
                    cancellationTokenSource.Token, Log);
                var thread = new Thread(configThreadState.ListenForConfigChanges)
                {
                    IsBackground = true
                };

                if (_threads.TryAdd(observer.Name, thread) && ConfigObservers.TryAdd(observer.Name, observer))
                {
                    _threads[observer.Name].Start();
                    if (CountdownEvent.CurrentCount == 0)
                    {
                        CountdownEvent.Reset(1);
                    }

                    //TODO add timeout?
                    CountdownEvent.Wait(10000, cancellationTokenSource.Token);//TODO make configurable
                    hasRegistered = true;
                }
            }
            finally
            {
                RegisterEvent.Set();
            }
            return hasRegistered;
        }
 bool IConfigProvider.RegisterObserver(IConfigObserver observer)
 {
     throw new NotImplementedException();
 }
예제 #10
0
 public void AddObserver(IConfigObserver observer)
 {
     _observers.Add(observer);
 }
 public override void UnRegisterObserver(IConfigObserver observer)
 {
     throw new NotImplementedException();
 }
        /// <summary>
        /// Un-registers an observer, which is either a Couchbase or Memcached Bucket, from the Provider.
        /// </summary>
        /// <param name="observer"></param>
        public override void UnRegisterObserver(IConfigObserver observer)
        {
            lock (SyncObj)
            {
                Thread thread;
                if (_threads.TryRemove(observer.Name, out thread))
                {
                    CancellationTokenSource cancellationTokenSource;
                    if (_cancellationTokens.TryRemove(observer.Name, out cancellationTokenSource))
                    {
                        Log.Info(m => m("Cancelling {0}", observer.Name));
                        cancellationTokenSource.Cancel();
                        cancellationTokenSource.Dispose();
                    }

                    IConfigObserver temp;
                    if (ConfigObservers.TryRemove(observer.Name, out temp))
                    {
                        Log.Info(m => m("Removing observer for {0}", observer.Name));
                    }

                    IConfigInfo configInfo;
                    if (Configs.TryRemove(observer.Name, out configInfo))
                    {
                        Log.Info(m => m("Removing config for {0}", observer.Name));
                    }
                }
            }
        }
예제 #13
0
 public void SetUp()
 {
     _updater        = MockRepository.GenerateMock <IConfigObserver>();
     _configSettings = new ConfigSettings();
 }
예제 #14
0
		/// <summary>
		/// Unregisters an observer from this configuration (Using the observer pattern)
		/// </summary>
		/// <param name="observer">The observer to unregister from this configuration</param>
		public void UnregisterObserver(IConfigObserver observer)
		{
			lock (_observerLock)
				if (ConfigObservers.Contains(observer))
					ConfigObservers.Remove(observer);
		}
예제 #15
0
		/// <summary>
		/// Registers an observer of this configuration (Using the observer pattern)
		/// </summary>
		/// <param name="observer">The observer to register to this configuration</param>
		public void RegisterObserver(IConfigObserver observer)
		{
			lock (_observerLock)
				if (ConfigObservers.Contains(observer) == false)
					ConfigObservers.Add(observer);
		}
 bool IConfigProvider.RegisterObserver(IConfigObserver observer)
 {
     throw new NotImplementedException();
 }
 public bool ObserverExists(IConfigObserver observer)
 {
     throw new NotImplementedException();
 }
예제 #18
0
 /// <summary>
 /// Checks to see if an observer has been registered.
 /// </summary>
 /// <param name="observer"></param>
 /// <returns></returns>
 public virtual bool ObserverExists(IConfigObserver observer)
 {
     return(ConfigObservers.ContainsKey(observer.Name));
 }
예제 #19
0
 public void UnRegisterListener(IConfigObserver observer)
 {
     throw new NotImplementedException();
 }
예제 #20
0
 public abstract bool RegisterObserver(IConfigObserver observer);
        /// <summary>
        /// Un-registers an observer, which is either a Couchbase or Memcached Bucket, from the provider.
        /// </summary>
        /// <param name="observer"></param>
        public override void UnRegisterObserver(IConfigObserver observer)
        {
            try
            {
                ConfigLock.EnterWriteLock();
                Thread thread;
                if (_threads.TryRemove(observer.Name, out thread))
                {
                    CancellationTokenSource cancellationTokenSource;
                    if (_cancellationTokens.TryRemove(observer.Name, out cancellationTokenSource))
                    {
                        Log.LogInformation("Cancelling {0}", observer.Name);
                        cancellationTokenSource.Cancel();
                        cancellationTokenSource.Dispose();
                    }

                    IConfigObserver temp;
                    if (ConfigObservers.TryRemove(observer.Name, out temp))
                    {
                        Log.LogInformation("Removing observer for {0}", observer.Name);
                    }

                    IConfigInfo configInfo;
                    if (Configs.TryRemove(observer.Name, out configInfo))
                    {
                        configInfo.Dispose();
                        Log.LogInformation("Removing config for {0}", observer.Name);
                    }
                }
            }
            finally
            {
                ConfigLock.ExitWriteLock();
            }
        }
예제 #22
0
 public abstract void UnRegisterObserver(IConfigObserver observer);
예제 #23
0
 public void SetUp()
 {
     _updater = MockRepository.GenerateMock<IConfigObserver>();
     _configSettings = new ConfigSettings();
 }
예제 #24
0
 public void SetUp()
 {
     _pollingTimer = MockRepository.GenerateMock<IPollingTimer>();
     _countdownResetTimer = MockRepository.GenerateMock<ICountdownResetTimer>();
     _pollingUpdaterResponder = new PollingUpdateResponder(_pollingTimer, _countdownResetTimer);
 }
 /// <summary>
 /// Checks to see if an observer has been registered.
 /// </summary>
 /// <param name="observer"></param>
 /// <returns></returns>
 public virtual bool ObserverExists(IConfigObserver observer)
 {
     return ConfigObservers.ContainsKey(observer.Name);
 }
 public void UnRegisterObserver(IConfigObserver observer)
 {
     throw new NotImplementedException();
 }
 public abstract void UnRegisterObserver(IConfigObserver observer);
 public bool ObserverExists(IConfigObserver observer)
 {
     throw new NotImplementedException();
 }
        public override void UnRegisterObserver(IConfigObserver observer)
        {
            IConfigObserver observerToRemove;
            if (ConfigObservers.TryRemove(observer.Name, out observerToRemove))
            {
                var temp = observerToRemove;
                Log.LogInformation("Unregistering observer {0}", temp.Name);

                IConfigInfo configInfo;
                if (Configs.TryRemove(observer.Name, out configInfo))
                {
                    configInfo.Dispose();
                    Log.LogInformation("Removing config for observer {0}", observer.Name);
                }
                else
                {
                    Log.LogWarning("Could not remove config for {0}", observer.Name);
                }
            }
            else
            {
                Log.LogWarning("Could not unregister observer {0}", observer.Name);
            }
        }
예제 #30
0
 public void SetUp()
 {
     _pollingTimer            = MockRepository.GenerateMock <IPollingTimer>();
     _countdownResetTimer     = MockRepository.GenerateMock <ICountdownResetTimer>();
     _pollingUpdaterResponder = new PollingUpdateResponder(_pollingTimer, _countdownResetTimer);
 }