Beispiel #1
0
        public void ShouldRaiseDeletedIfInternalRaisesDeleted()
        {
            AutoResetEvent        raisedEvent  = new AutoResetEvent(false);
            MockFileSystemWatcher mockInternal = new MockFileSystemWatcher();

            using (SafeEventFileSystemWatcher tested = new SafeEventFileSystemWatcher(mockInternal))
            {
                int DeletedRaised = 0;
                tested.Deleted += (s, e) =>
                {
                    DeletedRaised++;
                    raisedEvent.Set();
                };

                string fileName = Guid.NewGuid().ToString();
                try
                {
                    using (var file = System.IO.File.CreateText(fileName))
                        file.WriteLine("somedata");

                    mockInternal.RaiseDeleted(fileName);
                    raisedEvent.WaitOne(TimeSpan.FromSeconds(1));

                    Assert.AreEqual(1, DeletedRaised);
                }
                finally
                {
                    System.IO.File.Delete(fileName);
                }
            }
        }
Beispiel #2
0
        public void ShouldLogToDebugWhenRaisingFileLost()
        {
            string expected = "SomePath";
            MockFileSystemWatcher mockWatcher = new MockFileSystemWatcher();
            PluginDirectory       tested      = new PluginDirectory(mockWatcher);
            MockLog mockLog = new MockLog(tested);

            mockWatcher.RaiseDeleted(expected);
            Assert.IsTrue(mockLog.Any(x => x.Level == MockLog.Level.Debug && x.Message.Contains(expected)));
        }
Beispiel #3
0
        public void DeletedShouldRaiseFileLost()
        {
            MockFileSystemWatcher fsw    = new MockFileSystemWatcher();
            PluginDirectory       tested = new PluginDirectory(fsw);
            int FileLostRaised           = 0;

            tested.FileLost += (s, e) => FileLostRaised++;
            fsw.RaiseDeleted(GetType().Assembly.Location);
            Assert.AreEqual(1, FileLostRaised);
        }
Beispiel #4
0
        public void FileLostShouldNotBeRasedForNonDlls()
        {
            MockFileSystemWatcher fsw = new MockFileSystemWatcher();

            PluginDirectory tested         = new PluginDirectory(fsw);
            int             FileLostRaised = 0;

            tested.FileLost += (s, e) => FileLostRaised++;

            fsw.RaiseDeleted(@"file.img");

            Assert.AreEqual(0, FileLostRaised);
        }
Beispiel #5
0
        public void ShouldNotEmitAnythingIfDeletedWhileStillPendingRaiseCreated()
        {
            MockFileSystemWatcher mockInternal = new MockFileSystemWatcher();

            using (SafeEventFileSystemWatcher tested = new SafeEventFileSystemWatcher(mockInternal))
            {
                int CreatedRaised = 0;
                int ChangedRaised = 0;
                int DeletedRaised = 0;
                tested.Created += (s, e) => CreatedRaised++;
                tested.Changed += (s, e) => ChangedRaised++;
                tested.Deleted += (s, e) => DeletedRaised++;

                string fileName = Guid.NewGuid().ToString();
                try
                {
                    using (var file = System.IO.File.CreateText(fileName))
                    {
                        file.WriteLine("somedata");

                        mockInternal.RaiseCreated(fileName);
                        mockInternal.RaiseChanged(fileName);
                        Thread.Sleep(500);
                        Assert.AreEqual(0, CreatedRaised);
                        Assert.AreEqual(0, ChangedRaised);
                        mockInternal.RaiseDeleted(fileName);
                    }
                    Thread.Sleep(500);

                    Assert.AreEqual(0, CreatedRaised);
                    Assert.AreEqual(0, ChangedRaised);
                    Assert.AreEqual(0, DeletedRaised);
                }
                finally
                {
                    System.IO.File.Delete(fileName);
                }
            }
        }
Beispiel #6
0
        public void ShouldNotRaiseEventsOnNonExistingFileUntilPendingDeleted()
        {
            MockFileSystemWatcher mockInternal = new MockFileSystemWatcher();

            using (SafeEventFileSystemWatcher tested = new SafeEventFileSystemWatcher(mockInternal))
            {
                int ChangedRaised = 0;
                int DeletedRaised = 0;
                tested.Changed += (s, e) => ChangedRaised++;
                tested.Deleted += (s, e) => DeletedRaised++;

                string fileName = Guid.NewGuid().ToString();
                mockInternal.RaiseChanged(fileName);
                Thread.Sleep(500);
                Assert.AreEqual(0, ChangedRaised);

                mockInternal.RaiseDeleted(fileName);
                Thread.Sleep(500);

                Assert.AreEqual(1, ChangedRaised);
                Assert.AreEqual(1, DeletedRaised);
            }
        }