Beispiel #1
0
        public void SafeMoveFile_DestFileExists_Overwrite_NoPermissions_NoWarnOnFailure_ShouldNotLogException()
        {
            var testScenarioName = "DestFileExists_Overwrite_NoPermissions_NoWarnOnFailure";
            var originalFile     = $"{_testFolder}\\{testScenarioName}_Original.cs";
            var movedFile        = $"{_testFolder}\\{testScenarioName}_Moved.cs";

            FSTestsFixture.CreateFiles(_testFolder, new List <string> {
                Path.GetFileName(originalFile), Path.GetFileName(movedFile)
            }, true);

            try
            {
                _logDate = DateTime.Now;
                Fs.SafeMoveFile(originalFile, movedFile, true, false);

                Assert.False(_fixture.IsErrorMessageInLogFile(_logDate, ErrorLevel, $"{Path.GetFileName(movedFile)} {ErrorMessage}"));
            }
            finally
            {
                _ = new FileInfo(movedFile)
                {
                    IsReadOnly = false,
                };
            }
        }
Beispiel #2
0
        public void SafeDeleteFile_NoPermissions_ShouldHandleException()
        {
            var testScenarioName  = "NoPermissions";
            var directoryToCreate = $"{_testFolder}\\{testScenarioName}";
            var fileToDelete      = $"{directoryToCreate}\\{testScenarioName}.csproj";

            try
            {
                FSTestsFixture.CreateFolders(_testFolder, new List <string>()
                {
                    testScenarioName
                });
                FSTestsFixture.CreateFiles(_testFolder, new List <string>()
                {
                    $"{testScenarioName}\\{testScenarioName}.csproj"
                }, true);

                _logDate = DateTime.Now;
                Fs.SafeDeleteFile(fileToDelete);

                Assert.True(_fixture.IsErrorMessageInLogFile(_logDate, ErrorLevel, ErrorMessage));
            }
            finally
            {
                _ = new FileInfo(fileToDelete)
                {
                    IsReadOnly = false,
                };
            }
        }
        public SafeCopyFileTests(FSTestsFixture fixture)
        {
            _fixture = fixture;
            Thread.CurrentThread.CurrentUICulture = fixture.CultureInfo;

            _sourceFile = $"TestData\\TestProject\\Test.csproj";
            _testFolder = _fixture.CreateTempFolderForTest("SafeCopyFile");
        }
        public void EnsureFileEditable_FileIsNotReadOnly_ShouldNotModifyIsReadOnly()
        {
            var    testScenarioName = "FileIsNotReadOnly";
            string filePath         = $"{_testFolder}\\{testScenarioName}";

            FSTestsFixture.CreateFiles(_testFolder, new List <string> {
                testScenarioName
            });

            var originalFileInfo = new FileInfo(filePath);

            Fs.EnsureFileEditable(filePath);
            var newFileInfo = new FileInfo(filePath);

            Assert.False(originalFileInfo.IsReadOnly);
            Assert.False(newFileInfo.IsReadOnly);
        }
        public void SafeCopyFile_DestinationDirectoryAlreadyExists_ShouldNotCreateDirectory()
        {
            var testScenarioName    = "DestinationDirectoryAlreadyExists";
            var directoryToCopyFile = $"{_testFolder}\\{testScenarioName}";

            FSTestsFixture.CreateFolders(_testFolder, new List <string>()
            {
                testScenarioName
            });
            var totalOriginalDirectories = Directory.GetParent(directoryToCopyFile).GetDirectories().Length;

            Fs.SafeCopyFile(_sourceFile, directoryToCopyFile, true);

            var totalNewDirectories = Directory.GetParent(directoryToCopyFile).GetDirectories().Length;

            var noDirectoryHasBeenCreated = totalOriginalDirectories == totalNewDirectories;

            Assert.True(noDirectoryHasBeenCreated);
        }
Beispiel #6
0
        public void EnsureFolderExists_ErrorCreatingDirectory_ShouldLogException()
        {
            // To force an error creating a Directory
            // we create a file with the name of the folder that we want to create
            var testScenarioName       = "ErrorCreatingDirectory";
            var wrongDirectoryToCreate = $"{testScenarioName}\\{testScenarioName}.cs";

            FSTestsFixture.CreateFolders(_testFolder, new List <string> {
                testScenarioName
            });
            FSTestsFixture.CreateFiles(_testFolder, new List <string> {
                wrongDirectoryToCreate
            });

            _logDate = DateTime.Now;
            Fs.EnsureFolderExists($"{_testFolder}\\{wrongDirectoryToCreate}");

            Assert.True(_fixture.IsErrorMessageInLogFile(_logDate, ErrorLevel, ErrorMessage));
        }
Beispiel #7
0
        public void SafeRenameDirectory_WrongDestinationFolder_ShouldLogException()
        {
            // to throw the exception we create a file with the same name we try to create the new directory
            var testScenarioName  = "WrongDestinationFolder";
            var originalDirectory = $"{_testFolder}\\{testScenarioName}_Original";
            var wrongDirectory    = $"{_testFolder}\\{testScenarioName}_WrongFolder.cs";

            FSTestsFixture.CreateFolders(_testFolder, new List <string> {
                $"{testScenarioName}_Original", $"{testScenarioName}_Renamed"
            });
            FSTestsFixture.CreateFiles(_testFolder, new List <string> {
                $"{testScenarioName}_WrongFolder.cs"
            });

            _logDate = DateTime.Now;
            Fs.SafeRenameDirectory(originalDirectory, wrongDirectory);

            Assert.True(_fixture.IsErrorMessageInLogFile(_logDate, ErrorLevel, $"{testScenarioName}_Original {ErrorMessage}"));
        }
        public void GetExistingFolderNames_RootExists_ShouldReturnAllExpectedFolderNamesInAlphabeticalOrder()
        {
            var testScenarioName = "RootExists";
            var directoryExists  = $"{_testFolder}\\{testScenarioName}";

            FSTestsFixture.CreateFolders(_testFolder, new List <string> {
                testScenarioName, $"{testScenarioName}\\One", $"{testScenarioName}\\Two", $"{testScenarioName}\\Three"
            });

            var expected = new List <string>()
            {
                "One", "Three", "Two"
            };

            var actual = Fs.GetExistingFolderNames(directoryExists);

            Assert.Equal(3, actual.Count());
            Assert.Equal(expected, actual);
        }
Beispiel #9
0
        public void EnsureFolderExists_DirectoryAlreadyExists_ShouldNotCreateDirectory()
        {
            var testScenarioName  = "DirectoryAlreadyExists";
            var directoryToCreate = $"{_testFolder}\\{testScenarioName}";

            FSTestsFixture.CreateFolders(_testFolder, new List <string> {
                testScenarioName
            });

            var directoryExistsAtStart   = Directory.Exists(directoryToCreate);
            var totalOriginalDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length;

            Fs.EnsureFolderExists(directoryToCreate);

            var totalNewDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length;

            Assert.True(totalOriginalDirectories == totalNewDirectories);
            Assert.True(directoryExistsAtStart);
            Assert.True(Directory.Exists(directoryToCreate));
        }
Beispiel #10
0
        public void SafeMoveFile_DestFileExists_NoOverwrite_JustReturns()
        {
            var testScenarioName = "DestFileExists_NoOverwrite";
            var originalFile     = $"{_testFolder}\\{testScenarioName}_Original.cs";
            var movedFile        = $"{_testFolder}\\{testScenarioName}_Moved.cs";

            FSTestsFixture.CreateFiles(_testFolder, new List <string> {
                Path.GetFileName(originalFile), Path.GetFileName(movedFile)
            });

            var originFolderTotalFiles = Directory.GetFiles(_testFolder).Length;

            Fs.SafeMoveFile(originalFile, movedFile, false);

            var destinationFolderTotalFiles = Directory.GetFiles(_testFolder).Length;

            Assert.True(originFolderTotalFiles == destinationFolderTotalFiles);
            Assert.True(File.Exists(originalFile));
            Assert.True(File.Exists(movedFile));
        }
Beispiel #11
0
        public void SafeMoveFile_ValidData_ShouldMove()
        {
            var testScenarioName = "ValidData";
            var originalFile     = $"{_testFolder}\\{testScenarioName}_Original.cs";
            var movedFile        = $"{_testFolder}\\{testScenarioName}_Moved.cs";

            FSTestsFixture.CreateFiles(_testFolder, new List <string> {
                Path.GetFileName(originalFile)
            });

            var originFolderTotalFiles = Directory.GetFiles(_testFolder).Length;

            Fs.SafeMoveFile(originalFile, movedFile);

            var destinationFolderTotalFiles = Directory.GetFiles(_testFolder).Length;

            Assert.True(originFolderTotalFiles == destinationFolderTotalFiles);
            Assert.False(File.Exists(originalFile));
            Assert.True(File.Exists(movedFile));
        }
Beispiel #12
0
        public void SafeDeleteDirectory_DirectoryExists_ShouldDeleteDirectory()
        {
            var testScenarioName  = "DirectoryExists";
            var directoryToCreate = $"{_testFolder}\\{testScenarioName}";

            FSTestsFixture.CreateFolders(_testFolder, new List <string>()
            {
                testScenarioName
            });

            var totalOriginalDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length;

            Fs.SafeDeleteDirectory(directoryToCreate, false);

            var totalNewDirectories = Directory.GetParent(directoryToCreate).GetDirectories().Length;

            var directoryHasBeenDeleted = totalNewDirectories < totalOriginalDirectories;

            Assert.True(directoryHasBeenDeleted);
        }
Beispiel #13
0
        public void SafeDeleteFile_ExistingFile_ShouldHaveDeletedFile()
        {
            var testScenarioName  = "ExistingFile";
            var directoryToCreate = $"{_testFolder}\\{testScenarioName}";
            var fileToDelete      = $"{directoryToCreate}\\{testScenarioName}.csproj";

            FSTestsFixture.CreateFolders(_testFolder, new List <string>()
            {
                testScenarioName
            });
            FSTestsFixture.CreateFiles(_testFolder, new List <string>()
            {
                $"{testScenarioName}\\{testScenarioName}.csproj"
            });
            var fileExistsBefore = File.Exists(fileToDelete);

            Fs.SafeDeleteFile(fileToDelete);

            Assert.True(fileExistsBefore);
            Assert.False(File.Exists(fileToDelete));
        }
Beispiel #14
0
        public void SafeRenameDirectory_DirectoryAlreadyExists_ShouldLogException()
        {
            var testScenarioName  = "ValidData";
            var originalDirectory = $"{_testFolder}\\{testScenarioName}_Original";
            var renamedDirectory  = $"{_testFolder}\\{testScenarioName}_Renamed";

            FSTestsFixture.CreateFolders(_testFolder, new List <string> {
                $"{testScenarioName}_Original", $"{testScenarioName}_Renamed"
            });

            var totalOriginalDirectories = Directory.GetParent(originalDirectory).GetDirectories().Length;

            _logDate = DateTime.Now;
            Fs.SafeRenameDirectory(originalDirectory, renamedDirectory);

            var totalNewDirectories = Directory.GetParent(originalDirectory).GetDirectories().Length;

            var sameNumberOfDirectories = totalNewDirectories == totalOriginalDirectories;

            Assert.True(sameNumberOfDirectories);
            Assert.True(_fixture.IsErrorMessageInLogFile(_logDate, ErrorLevel, $"{testScenarioName}_Original {ErrorMessage}"));
        }
Beispiel #15
0
        public void SafeRenameDirectory_ValidData_ShouldMoveDirectory()
        {
            var testScenarioName  = "ValidData";
            var originalDirectory = $"{_testFolder}\\{testScenarioName}_Original";
            var renamedDirectory  = $"{_testFolder}\\{testScenarioName}_Renamed";

            FSTestsFixture.CreateFolders(_testFolder, new List <string> {
                $"{testScenarioName}_Original"
            });

            var totalOriginalDirectories = Directory.GetParent(originalDirectory).GetDirectories().Length;

            Fs.SafeRenameDirectory(originalDirectory, renamedDirectory);

            var totalNewDirectories = Directory.GetParent(originalDirectory).GetDirectories().Length;

            var sameNumberOfDirectories = totalNewDirectories == totalOriginalDirectories;

            Assert.True(sameNumberOfDirectories);
            var oldDirectoryHasBeenMovedToNewDirectory = Directory.Exists(renamedDirectory) && !Directory.Exists(originalDirectory);

            Assert.True(oldDirectoryHasBeenMovedToNewDirectory);
        }
        public void EnsureFileEditable_FileIsReadOnly_ShouldChangeToReadOnly()
        {
            var testScenarioName = "FileIsReadOnly";
            var fileToEdit       = $"{_testFolder}\\{testScenarioName}";

            try
            {
                FSTestsFixture.CreateFiles(_testFolder, new List <string> {
                    testScenarioName
                }, true);

                Fs.EnsureFileEditable(fileToEdit);
                var newFileInfo = new FileInfo(fileToEdit);

                Assert.False(newFileInfo.IsReadOnly);
            }
            finally
            {
                _ = new FileInfo(fileToEdit)
                {
                    IsReadOnly = false,
                };
            }
        }
        public void SafeCopyFile_FileDoesNotExist_ShouldCreateNewFileWhileCopying()
        {
            var testScenarioName  = "FileDoesNotExist";
            var directoryToCreate = $"{_testFolder}\\{testScenarioName}";

            FSTestsFixture.CreateFolders(_testFolder, new List <string>()
            {
                testScenarioName
            });
            var expectedDestinationFile = Path.Combine(directoryToCreate, Path.GetFileName(_sourceFile));

            var fileExistsAtStart  = File.Exists(expectedDestinationFile);
            var totalOriginalFiles = Directory.GetFiles(directoryToCreate).Length;

            Fs.SafeCopyFile(_sourceFile, directoryToCreate, true);

            var totalNewFiles = Directory.GetFiles(directoryToCreate).Length;

            var fileHasBeenCreated = totalNewFiles > totalOriginalFiles;

            Assert.False(fileExistsAtStart);
            Assert.True(fileHasBeenCreated);
            Assert.True(File.Exists(expectedDestinationFile));
        }
Beispiel #18
0
 public void Dispose()
 {
     FSTestsFixture.DeleteTempFolderForTest(_testFolder);
 }
Beispiel #19
0
 public SafeRenameDirectoryTests(FSTestsFixture fixture)
 {
     _fixture = fixture;
     Thread.CurrentThread.CurrentUICulture = fixture.CultureInfo;
     _testFolder = _fixture.CreateTempFolderForTest("SafeRenameDirectory");
 }
Beispiel #20
0
 public EnsureFolderExistsTests(FSTestsFixture fixture)
 {
     _fixture = fixture;
     Thread.CurrentThread.CurrentUICulture = fixture.CultureInfo;
     _testFolder = _fixture.CreateTempFolderForTest("EnsureFolderExists");
 }
Beispiel #21
0
 public SafeDeleteDirectoryTests(FSTestsFixture fixture)
 {
     _fixture    = fixture;
     _testFolder = _fixture.CreateTempFolderForTest("SafeDeleteDirectory");
 }
Beispiel #22
0
 public SafeDeleteFileTests(FSTestsFixture fixture)
 {
     _fixture = fixture;
     Thread.CurrentThread.CurrentUICulture = fixture.CultureInfo;
     _testFolder = _fixture.CreateTempFolderForTest("SafeDeleteFile");
 }
 public GetExistingFolderNamesTests(FSTestsFixture fixture)
 {
     _fixture    = fixture;
     _testFolder = _fixture.CreateTempFolderForTest("GetExistingFolderNames");
 }