Exemplo n.º 1
0
 private void OnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
 {
     if (propertyChangedEventArgs.PropertyName == nameof(SelectedFile))
     {
         RemoveFileCommand.RaiseCanExecuteChanged();
     }
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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
        }
Exemplo n.º 4
0
        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());
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }