public void Handle(FileOpenEvent message) { if (!fileSystem.File.Exists(message.Path)) { return; } var openedDocs = MDI.Items.Cast <DocumentViewModel>(); var fileSystemSiteItem = new FileSystemSiteItem(eventAggregator, fileSystem, message.Path); var openedDoc = openedDocs.SingleOrDefault(d => d.MarkpadDocument.IsSameItem(fileSystemSiteItem)); if (openedDoc != null) { MDI.ActivateItem(openedDoc); } else { var finishedLoading = DoingWork(string.Format("Opening {0}", message.Path)); documentFactory .OpenDocument(message.Path) .ContinueWith(t => { OpenDocumentResult(t); finishedLoading.Dispose(); }, TaskScheduler.FromCurrentSynchronizationContext()); } }
public void deletes_matching_child_when_deleted_event_raised() { // arrange var eventAggregator = Substitute.For <IEventAggregator>(); const string fileName = @"c:\Folder\file.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, fileName) { Name = "file.txt", Selected = true, IsRenaming = true }; var folder = new FileSystemSiteItem(eventAggregator, fileSystem, @"c:\Folder") { Name = "Folder", Children = { testItem } }; // act folder.Handle(new FileDeletedEvent(fileName)); // assert Assert.Empty(folder.Children); }
public void deletes_matching_child_when_deleted_event_raised() { // arrange var eventAggregator = Substitute.For<IEventAggregator>(); const string fileName = @"c:\Folder\file.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, fileName) { Name = "file.txt", Selected = true, IsRenaming = true }; var folder = new FileSystemSiteItem(eventAggregator, fileSystem, @"c:\Folder") { Name = "Folder", Children = { testItem } }; // act folder.Handle(new FileDeletedEvent(fileName)); // assert Assert.Empty(folder.Children); }
public async void Handle(FileOpenEvent message) { if (!fileSystem.File.Exists(message.Path)) { return; } var fileSystemSiteItem = new FileSystemSiteItem(eventAggregator, fileSystem, message.Path); await OpenDocument(fileSystemSiteItem, message.Path, () => documentFactory.OpenDocument(message.Path)); }
public void deletes_matching_child_when_deleted_event_raised() { // arrange const string fileName = @"c:\Folder\file.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, fileName) { Name = "file.txt", Selected = true, IsRenaming = true }; jekyllContext.Items.Add(testItem); // act jekyllContext.Handle(new FileDeletedEvent(fileName)); // assert Assert.Empty(jekyllContext.Items); }
public void commit_rename_moves_file() { // arrange var eventAggregator = Substitute.For <IEventAggregator>(); const string oldFileName = @"c:\OldFile.txt"; const string newFileName = @"c:\newFile.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName) { Name = "Test", Selected = true, IsRenaming = true }; // act testItem.Name = newFileName; testItem.CommitRename(); // assert fileSystem.File.Received().Move(oldFileName, newFileName); }
public void undo_rename_reverts_changes() { // arrange var eventAggregator = Substitute.For <IEventAggregator>(); const string oldFileName = @"c:\OldFile.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName) { Name = "Test", Selected = true, IsRenaming = true }; // act testItem.Name = "Changed"; testItem.UndoRename(); // assert Assert.Equal("OldFile.txt", testItem.Name); Assert.Equal(oldFileName, testItem.Path); }
public void commit_rename_moves_file() { // arrange var eventAggregator = Substitute.For<IEventAggregator>(); const string oldFileName = @"c:\OldFile.txt"; const string newFileName = @"c:\newFile.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName) { Name = "Test", Selected = true, IsRenaming = true }; // act testItem.Name = newFileName; testItem.CommitRename(); // assert fileSystem.File.Received().Move(oldFileName, newFileName); }
public void renames_self_when_receives_filerenamed_event() { // arrange var eventAggregator = Substitute.For <IEventAggregator>(); const string oldFileName = @"c:\OldFile.txt"; const string newFileName = @"c:\newFile.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName) { Name = "Test", Selected = true, IsRenaming = true }; // act testItem.Handle(new FileRenamedEvent(oldFileName, newFileName)); // assert Assert.Equal("newFile.txt", testItem.Name); Assert.Equal(newFileName, testItem.Path); }
public void undo_rename_reverts_changes() { // arrange var eventAggregator = Substitute.For<IEventAggregator>(); const string oldFileName = @"c:\OldFile.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName) { Name = "Test", Selected = true, IsRenaming = true }; // act testItem.Name = "Changed"; testItem.UndoRename(); // assert Assert.Equal("OldFile.txt", testItem.Name); Assert.Equal(oldFileName, testItem.Path); }
public void renames_self_when_receives_filerenamed_event() { // arrange var eventAggregator = Substitute.For<IEventAggregator>(); const string oldFileName = @"c:\OldFile.txt"; const string newFileName = @"c:\newFile.txt"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName) { Name = "Test", Selected = true, IsRenaming = true }; // act testItem.Handle(new FileRenamedEvent(oldFileName, newFileName)); // assert Assert.Equal("newFile.txt", testItem.Name); Assert.Equal(newFileName, testItem.Path); }
public void inserts_new_file_into_sitecontext() { // arrange var eventAggregator = Substitute.For <IEventAggregator>(); const string oldFileName = @"c:\Site\Folder"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName); testItem.Children.Add(new TestItem(eventAggregator) { Name = "Alpha.txt" }); testItem.Children.Add(new TestItem(eventAggregator) { Name = "Gamma.txt" }); // act testItem.Handle(new FileCreatedEvent(@"c:\Site\Folder\Beta.txt")); // assert Assert.Equal("Beta.txt", testItem.Children[1].Name); }
public void inserts_new_file_into_sitecontext() { // arrange var eventAggregator = Substitute.For<IEventAggregator>(); const string oldFileName = @"c:\Site\Folder"; var testItem = new FileSystemSiteItem(eventAggregator, fileSystem, oldFileName); testItem.Children.Add(new TestItem(eventAggregator) { Name = "Alpha.txt" }); testItem.Children.Add(new TestItem(eventAggregator) { Name = "Gamma.txt" }); // act testItem.Handle(new FileCreatedEvent(@"c:\Site\Folder\Beta.txt")); // assert Assert.Equal("Beta.txt", testItem.Children[1].Name); }