private static string CreateTempManagerAndFolder(string temporaryFolderBaseName)
        {
            TemporaryFolderManager manager = new TemporaryFolderManager(temporaryFolderBaseName);
            var folder = manager.CreateTemporaryFolder();

            return(folder.FolderPath);
        }
        public void CreateTemporaryFolder_CreateOnly()
        {
            TemporaryFolderManager manager = new TemporaryFolderManager();
            var folder = manager.CreateTemporaryFolder();

            Assert.StartsWith(manager.TemporaryFolderPath, folder.FolderPath);
        }
        public void MultipleManagers()
        {
            // create a temporary folder and drop a file into it...
            TemporaryFolderManager manager1 = new TemporaryFolderManager();
            var    folder1   = manager1.CreateTemporaryFolder();
            string filePath1 = Path.Combine(folder1.FolderPath, "file1.txt");

            File.WriteAllText(filePath1, "Test");

            // create another temporary folder manager
            TemporaryFolderManager manager2 = new TemporaryFolderManager();
            var folder2   = manager2.CreateTemporaryFolder();
            var filePath2 = Path.Combine(folder2.FolderPath, "file2.txt");

            File.WriteAllText(filePath2, "Test");

            // both managers should still have their files as both managers are alive
            // (manager 2 must not remove directories still managed by manager 1)
            Assert.True(File.Exists(filePath1));
            Assert.True(File.Exists(filePath2));

            // keep managers alive, otherwise the finalizer might clean up and remove directories
            GC.KeepAlive(manager1);
            GC.KeepAlive(manager2);
        }
        public void CreateTemporaryFolder_CreateAndAddContent()
        {
            TemporaryFolderManager manager = new TemporaryFolderManager();
            var folder = manager.CreateTemporaryFolder();

            Assert.StartsWith(manager.TemporaryFolderPath, folder.FolderPath);

            // write a file to the temporary folder
            string filePath = Path.Combine(folder.FolderPath, "file.txt");

            File.WriteAllText(filePath, "Test");

            // add a directory to the temporary folder
            string directoryPath = Path.Combine(folder.FolderPath, "Test");

            Directory.CreateDirectory(directoryPath);

            // dispose temporary folder
            Assert.True(Directory.Exists(folder.FolderPath));
            folder.Dispose();
            Assert.False(Directory.Exists(folder.FolderPath));
        }