private void OnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs) { if (propertyChangedEventArgs.PropertyName == nameof(SelectedFile)) { RemoveFileCommand.RaiseCanExecuteChanged(); } }
public void Execute_should_do_nothing_if_no_filename_is_provided() { var testController = MockRepository.GenerateStub <ITestController>(); var projectController = MockRepository.GenerateStub <IProjectController>(); var removeFileCommand = new RemoveFileCommand(projectController, testController); var progressMonitor = MockProgressMonitor.Instance; removeFileCommand.Execute(progressMonitor); projectController.AssertWasNotCalled(pc => pc.RemoveFile(Arg <string> .Is.Anything)); }
protected void RemoveFileCommandHandler(RemoveFileCommand cmd) { #if PERFORMANCE_TEST var ptest = Service.Performance.PerformanceTest.Get(); ptest.Start("RemoveFileCommand"); #endif _service.RemoveFile(cmd.filePath); #if PERFORMANCE_TEST // now stop the watches ptest.Stop("RemoveFileCommand"); #endif }
public async Task CloseArchiveAsync_ArchiveModifiedAndUserSavesFail_ArchiveSavedAndClosed() { var w = this.CreateWorkspace(); var closed = false; w.ArchiveClosed += (o, e) => closed = true; // Open an archive var archivePath = @"C:\archive.nefs"; var archive = TestHelpers.CreateTestArchive(archivePath); this.nefsReaderMock.Setup(r => r.ReadArchiveAsync(It.IsAny <NefsArchiveSource>(), It.IsAny <NefsProgress>())) .ReturnsAsync(archive); this.fileSystem.AddFile(archivePath, new MockFileData("hi")); await w.OpenArchiveAsync(archivePath); Assert.Same(archive, w.Archive); Assert.False(w.ArchiveIsModified); // Modify archvie var itemId = new NefsItemId(0); var item = w.Archive.Items.GetItems(itemId).First(); var cmd = new RemoveFileCommand(item, item.State); w.Execute(cmd); // Mock user choosing to save before closing this.MockMessageBox(DialogResult.Yes); // Mock the save to fail this.nefsWriterMock.Setup(n => n.WriteArchiveAsync( It.IsAny <string>(), It.IsAny <NefsArchive>(), It.IsAny <NefsProgress>())) .ThrowsAsync(new IOException()); // Close the archive var result = await w.CloseArchiveAsync(); Assert.False(result); Assert.False(closed); Assert.Same(archive, w.Archive); Assert.True(w.ArchiveIsModified); Assert.Equal(archivePath, w.ArchiveSource.DataFilePath); Assert.Equal(archivePath, w.ArchiveSource.HeaderFilePath); // Verify writer was called this.nefsWriterMock.Verify( n => n.WriteArchiveAsync( It.IsAny <string>(), It.IsAny <NefsArchive>(), It.IsAny <NefsProgress>()), Times.Once()); }
public void Execute_should_remove_the_file() { var testController = MockRepository.GenerateStub <ITestController>(); var projectController = MockRepository.GenerateStub <IProjectController>(); var removeFileCommand = new RemoveFileCommand(projectController, testController); var progressMonitor = MockProgressMonitor.Instance; const string filename = "filename"; removeFileCommand.FileName = filename; removeFileCommand.Execute(progressMonitor); projectController.AssertWasCalled(pc => pc.RemoveFile(filename)); }
public async Task CloseArchiveAsync_ArchiveModifiedAndUserDoesNotSave_ArchiveClosedWithoutSaving() { var w = this.CreateWorkspace(); var closed = false; w.ArchiveClosed += (o, e) => closed = true; // Open an archive var archivePath = @"C:\archive.nefs"; var archive = TestHelpers.CreateTestArchive(archivePath); this.nefsReaderMock.Setup(r => r.ReadArchiveAsync(It.IsAny <NefsArchiveSource>(), It.IsAny <NefsProgress>())) .ReturnsAsync(archive); this.fileSystem.AddFile(archivePath, new MockFileData("hi")); await w.OpenArchiveAsync(archivePath); Assert.Same(archive, w.Archive); Assert.False(w.ArchiveIsModified); // Modify archvie var itemId = new NefsItemId(0); var item = w.Archive.Items.GetItems(itemId).First(); var cmd = new RemoveFileCommand(item, item.State); w.Execute(cmd); // Mock user choosing NOT to save before closing this.MockMessageBox(DialogResult.No); // Close the archive var result = await w.CloseArchiveAsync(); Assert.True(result); Assert.True(closed); Assert.Null(w.Archive); Assert.False(w.ArchiveIsModified); Assert.Null(w.ArchiveSource); // Verify not saved this.nefsWriterMock.Verify( n => n.WriteArchiveAsync( It.IsAny <string>(), It.IsAny <NefsArchive>(), It.IsAny <NefsProgress>()), Times.Never()); }
public async Task SaveArchiveAsync_SaveFailed_NotSaved() { var w = this.CreateWorkspace(); var saved = false; w.ArchiveSaved += (o, e) => saved = true; // Open an archive var archivePath = @"C:\archive.nefs"; var archive = TestHelpers.CreateTestArchive(archivePath); this.nefsReaderMock.Setup(r => r.ReadArchiveAsync(It.IsAny <NefsArchiveSource>(), It.IsAny <NefsProgress>())) .ReturnsAsync(archive); this.fileSystem.AddFile(archivePath, new MockFileData("hi")); await w.OpenArchiveAsync(archivePath); Assert.Same(archive, w.Archive); Assert.False(w.ArchiveIsModified); // Modify archvie var itemId = new NefsItemId(0); var item = w.Archive.Items.GetItems(itemId).First(); var cmd = new RemoveFileCommand(item, item.State); w.Execute(cmd); // Mock save falied this.nefsWriterMock.Setup(n => n.WriteArchiveAsync( It.IsAny <string>(), It.IsAny <NefsArchive>(), It.IsAny <NefsProgress>())) .ThrowsAsync(new IOException()); // Save archive var result = await w.SaveArchiveAsync(archivePath); Assert.False(result); Assert.False(saved); Assert.Same(archive, w.Archive); Assert.True(w.ArchiveIsModified); Assert.Equal(archivePath, w.ArchiveSource.DataFilePath); Assert.Equal(archivePath, w.ArchiveSource.HeaderFilePath); }
public async Task CloseArchiveAsync_ArchiveModifiedAndUserCancels_ArchiveNotClosed() { var w = this.CreateWorkspace(); var closed = false; w.ArchiveClosed += (o, e) => closed = true; // Open an archive var archivePath = @"C:\archive.nefs"; var archive = TestHelpers.CreateTestArchive(archivePath); this.nefsReaderMock.Setup(r => r.ReadArchiveAsync(It.IsAny <NefsArchiveSource>(), It.IsAny <NefsProgress>())) .ReturnsAsync(archive); this.fileSystem.AddFile(archivePath, new MockFileData("hi")); await w.OpenArchiveAsync(archivePath); Assert.Same(archive, w.Archive); Assert.False(w.ArchiveIsModified); // Modify archvie var itemId = new NefsItemId(0); var item = w.Archive.Items.GetItems(itemId).First(); var cmd = new RemoveFileCommand(item, item.State); w.Execute(cmd); // Mock user cancelling the request to save before closing this.MockMessageBox(DialogResult.Cancel); // Close the archive var result = await w.CloseArchiveAsync(); Assert.False(result); Assert.False(closed); Assert.Same(archive, w.Archive); Assert.True(w.ArchiveIsModified); Assert.Equal(archivePath, w.ArchiveSource.DataFilePath); Assert.Equal(archivePath, w.ArchiveSource.HeaderFilePath); }