public void Can_Add_Or_Update_File_In_A_Folder()
        {
            var rootFolder = new FolderDirectoryItem("root", null);

            bool addNotified    = false;
            bool updateNotified = false;

            rootFolder.ItemAdded += (sender, e) =>
            {
                DirectoryItemAddedEventArgs args = e;
                IDirectoryItem newItem           = e.NewItem;
                Assert.Equal("foo.txt", newItem.Name);
                addNotified = true;
            };

            var addedFile = rootFolder.AddOrUpdateFile(new StringFileInfo("hi there", "foo.txt"));

            Assert.True(addNotified);
            Assert.False(updateNotified);
            addNotified = false;


            addedFile.Updated += (sender, e) =>
            {
                Assert.Equal("foo.txt", e.NewItem.Name);
                updateNotified = true;
            };


            var updatedFile = rootFolder.AddOrUpdateFile(new StringFileInfo("hi there modified", "foo.txt"));

            Assert.True(updateNotified);
            Assert.False(addNotified);
        }
예제 #2
0
        public void Can_Watch_Directory_For_New_Items()
        {
            // Arrange
            IDirectory directory = new InMemoryDirectory();
            var        watcher   = new DirectoryWatcher(directory);

            var watchPattern = "/some/dir/folder/newfile.*";

            watcher.AddFilter(watchPattern);

            //
            bool notified = false;

            watcher.ItemAdded += (sender, e) =>
            {
                DirectoryItemAddedEventArgs args = e.DirectoryItemEventArgs;
                var            matchedFilters    = e.MatchedFilters;
                IDirectoryItem newItem           = args.NewItem;
                Assert.Equal("newfile.txt", newItem.Name);
                notified = true;
            };


            directory.AddFile("/some/dir/folder/", new StringFileInfo("hi", "newfile.txt"));
            Assert.True(notified);

            notified = false;
            directory.AddFile("/some/dir/folder/", new StringFileInfo("shouldnt trigger", "anotherfile.txt"));
            Assert.False(notified);
        }
        public void Can_Add_A_File_To_A_Folder()
        {
            var rootFolder = new FolderDirectoryItem("root", null);

            bool notified = false;

            rootFolder.ItemAdded += (sender, e) =>
            {
                DirectoryItemAddedEventArgs args = e;
                IDirectoryItem newItem           = e.NewItem;
                Assert.Equal("child", newItem.Name);
                notified = true;
            };

            var childFolder = rootFolder.GetOrAddFolder("child");

            Assert.True(notified);
        }