public void Watcher_ExpectPath() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper(); new DiskWatcher(fakeIFileSystemWatcher, _scopeFactory).Watcher("/test"); Assert.AreEqual("/test", fakeIFileSystemWatcher.Path); }
public void Watcher_Error() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper(); new DiskWatcher(fakeIFileSystemWatcher, _scopeFactory).Watcher("/test"); var autoResetEvent = new AutoResetEvent(false); using var scope = _scopeFactory.CreateScope(); // ISynchronize is a scoped service var synchronize = scope.ServiceProvider.GetRequiredService <ISynchronize>() as FakeISynchronize; if (synchronize == null) { throw new NullReferenceException("FakeISynchronize should not be null "); } var message = string.Empty; fakeIFileSystemWatcher.Error += (s, e) => { autoResetEvent.Set(); message = e.GetException().Message; }; fakeIFileSystemWatcher.TriggerOnError(new ErrorEventArgs(new InternalBufferOverflowException("test"))); fakeIFileSystemWatcher.TriggerOnError(new ErrorEventArgs(new InternalBufferOverflowException("test"))); var wasSignaled = autoResetEvent.WaitOne(TimeSpan.FromSeconds(200)); Assert.IsTrue(wasSignaled); Assert.IsTrue(message.Contains("test")); }
public void Watcher_Retry_Ok() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper(); var result = new DiskWatcher(fakeIFileSystemWatcher, _scopeFactory).Retry(fakeIFileSystemWatcher); Assert.IsTrue(result); }
public void OnRenamed_ShouldHitQueueProcessor() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper() { CrashOnEnableRaisingEvents = true }; var event1 = new RenamedEventArgs(WatcherChangeTypes.Renamed, "t", "test.jpg", "test2.jpg"); new DiskWatcher(fakeIFileSystemWatcher, new FakeIWebLogger(), null).OnRenamed(null, event1); }
public void Watcher_CrashAnd_Retry() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper() { CrashOnEnableRaisingEvents = true }; fakeIFileSystemWatcher.EnableRaisingEvents = false; var result = new DiskWatcher(fakeIFileSystemWatcher, _scopeFactory).Retry(fakeIFileSystemWatcher, 1, 0); Assert.IsFalse(result); }
public void OnChanged_Should_Not_HitQueueProcessor_esp() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper() { CrashOnEnableRaisingEvents = true }; var event1 = new FileSystemEventArgs(WatcherChangeTypes.Changed, "t", "test.esp"); QueueProcessor processor = null; // ReSharper disable once ExpressionIsAlwaysNull new DiskWatcher(fakeIFileSystemWatcher, new FakeIWebLogger(), processor).OnChanged(null, event1); Assert.IsNull(processor); }
public void OnRenamed_Should_Not_HitQueueProcessor_FromTmp() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper() { CrashOnEnableRaisingEvents = true }; // /folder/.syncthing.20211222_112808_DSC00998.jpg.tmp OnRenamed to: /folder/20211222_112808_DSC00998.jpg var event1 = new RenamedEventArgs(WatcherChangeTypes.Renamed, "t", "test2.jpg", ".syncthing.test.jpg.tmp"); var processor = new FakeIQueueProcessor(); // ReSharper disable once ExpressionIsAlwaysNull new DiskWatcher(fakeIFileSystemWatcher, new FakeIWebLogger(), processor).OnRenamed(null, event1); Assert.AreEqual(1, processor.Data.Count); Assert.AreEqual($"t{Path.DirectorySeparatorChar}test2.jpg", processor.Data[0].Item1); Assert.AreEqual(null, processor.Data[0].Item2); }
public void Watcher_Changed() { var fakeIFileSystemWatcher = new FakeIFileSystemWatcherWrapper(); new DiskWatcher(fakeIFileSystemWatcher, _scopeFactory).Watcher("/test"); using var scope = _scopeFactory.CreateScope(); // ISynchronize is a scoped service var synchronize = scope.ServiceProvider.GetRequiredService <ISynchronize>() as FakeISynchronize; if (synchronize == null) { throw new NullReferenceException("FakeISynchronize should not be null "); } var logger = scope.ServiceProvider.GetRequiredService <IWebLogger>() as FakeIWebLogger; fakeIFileSystemWatcher.TriggerOnChanged(new FileSystemEventArgs(WatcherChangeTypes.Changed, "/", "test.jpg")); Console.WriteLine(logger.TrackedDebug.LastOrDefault().Item2); Assert.IsTrue(logger.TrackedDebug.LastOrDefault().Item2.Contains("/test")); Assert.IsTrue(logger.TrackedDebug.LastOrDefault().Item2.Contains("Changed")); }