示例#1
0
        public void DataSourceWatcher_ErrorOccurs_ErrorEventIsFired()
        {
            var exception       = new InternalTestFailureException();
            var errorEventFired = false;

            var onStart = new Action <IDataSourceWatcher>(dsw =>
            {
            });

            var onStop = new Action <IDataSourceWatcher>(dsw =>
            {
            });

            var dataSource        = MockRepository.GenerateMock <IDataSource>();
            var dataSourceWatcher = new MockDataSourceWatcher(onStart, onStop);

            dataSourceWatcher.Error += (sender, e) =>
            {
                errorEventFired = true;

                Assert.AreEqual(exception, e.Exception);
            };

            dataSourceWatcher.Start();
            dataSourceWatcher.RaiseErrorEvent(exception);
            dataSourceWatcher.Stop();

            Assert.IsTrue(errorEventFired);
        }
示例#2
0
        public void DataSourceWatcher_DataSourceIsAvailable_DataSourceAvailableEventIsFired()
        {
            var dataSourceAvailableEventFired = false;

            var onStart = new Action <IDataSourceWatcher>(dsw =>
            {
            });

            var onStop = new Action <IDataSourceWatcher>(dsw =>
            {
            });

            var dataSource        = MockRepository.GenerateMock <IDataSource>();
            var dataSourceWatcher = new MockDataSourceWatcher(onStart, onStop);

            dataSourceWatcher.DataSourceAvailable += (sender, e) =>
            {
                dataSourceAvailableEventFired = true;

                Assert.AreEqual(dataSource, e.DataSource);
            };

            dataSourceWatcher.Start();
            dataSourceWatcher.RaiseDataSourceAvailableEvent(dataSource);
            dataSourceWatcher.Stop();

            Assert.IsTrue(dataSourceAvailableEventFired);
        }
示例#3
0
        public void DataSourceWatcher_StartAndStop_StateIsUpdatedAccordingly()
        {
            var startingStateFlag = false;
            var startedStateFlag  = false;
            var stoppingStateFlag = false;
            var stoppedStateFlag  = false;

            var onStart = new Action <IDataSourceWatcher>(dsw =>
            {
                startingStateFlag = dsw.State == DataSourceWatcherState.Starting;
            });

            var onStop = new Action <IDataSourceWatcher>(dsw =>
            {
                stoppingStateFlag = dsw.State == DataSourceWatcherState.Stopping;
            });

            var dataSourceWatcher = new MockDataSourceWatcher(onStart, onStop);

            dataSourceWatcher.Start();

            startedStateFlag = dataSourceWatcher.State == DataSourceWatcherState.Started;

            dataSourceWatcher.Stop();

            stoppedStateFlag = dataSourceWatcher.State == DataSourceWatcherState.Stopped;

            Assert.IsTrue(startingStateFlag);
            Assert.IsTrue(startedStateFlag);
            Assert.IsTrue(stoppingStateFlag);
            Assert.IsTrue(stoppedStateFlag);
        }
示例#4
0
        public void DataSourceWatcher_StopWithoutStart_ExceptionIsThrown()
        {
            var onStart = new Action <IDataSourceWatcher>(dsw =>
            {
            });

            var onStop = new Action <IDataSourceWatcher>(dsw =>
            {
            });

            var dataSourceWatcher = new MockDataSourceWatcher(onStart, onStop);

            dataSourceWatcher.Stop();
        }
示例#5
0
        public void DataSourceWatcher_OnStartThrowsException_ExceptionIsPropogated()
        {
            var onStart = new Action <IDataSourceWatcher>(dsw =>
            {
                throw new InternalTestFailureException();
            });

            var onStop = new Action <IDataSourceWatcher>(dsw =>
            {
            });

            var dataSourceWatcher = new MockDataSourceWatcher(onStart, onStop);

            dataSourceWatcher.Start();
        }