//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void stopMonitoringWhenLifecycleStops() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void StopMonitoringWhenLifecycleStops()
        {
            DefaultFileSystemWatcherService service = new DefaultFileSystemWatcherService(_jobScheduler, _fileWatcher);

            service.Init();
            service.Start();
            service.Stop();

            verify(_fileWatcher).stopWatching();
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void closeFileWatcherOnShutdown() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void CloseFileWatcherOnShutdown()
        {
            DefaultFileSystemWatcherService service = new DefaultFileSystemWatcherService(_jobScheduler, _fileWatcher);

            service.Init();
            service.Start();
            service.Stop();
            service.Shutdown();

            verify(_fileWatcher).close();
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void startMonitoringWhenLifecycleStarting() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void StartMonitoringWhenLifecycleStarting()
        {
            System.Threading.CountdownEvent latch = new System.Threading.CountdownEvent(1);
            FileWatcher watcher = new TestFileWatcher(latch);
            DefaultFileSystemWatcherService service = new DefaultFileSystemWatcherService(_jobScheduler, watcher);

            service.Init();
            service.Start();

            latch.await();
        }