public void GetEnumerator_IfFilesChangeDuringEnumeration_ThenTheyAreYielded() { using (var cts = new CancellationTokenSource(5000)) { AutoResetEvent collectionCreated = new AutoResetEvent(false); var tasks = new Task[] { new Task( () => { var collection = new ChangedFileCollection(cts.Token, _directory); collectionCreated.Set(); var results = collection.ToArray(); Assert.IsTrue(results.SequenceEqual(_addedFiles)); }), new Task( () => { collectionCreated.WaitOne(); Thread.Sleep(500); CreateFiles(_addedFiles); }) }; tasks[0].Start(); tasks[1].Start(); Task.WaitAll(tasks); } }
public void GetEnumerator_IfFilesPresentOnConstruction_ThenTheyAreYielded() { CreateFiles(_initialFiles); using (var cts = new CancellationTokenSource(1000)) { var results = new ChangedFileCollection(cts.Token, _directory); Assert.IsTrue(results.SequenceEqual(_initialFiles)); } }
public void GetEnumerator_IfNoFilesEver_ThenYieldsNothing() { using (var cts = new CancellationTokenSource(500)) { var results = new ChangedFileCollection(cts.Token, _directory); Assert.AreEqual(0, results.Count()); } }