/// <summary>
/// Creates a test directory with dummy files.
/// </summary>
/// <param name="rootWorkingDir">Root directory for test</param>
/// <param name="sourceSubDir">Sub directory for test</param>
/// <returns>sourceDir, targetDir, hiddenFileCount</returns>
public static Tuple <string, string, int> Create(string rootWorkingDir, string sourceSubDir = "Source")
{
///////////////////////////////////
// Initialize root dirs
///////////////////////////////////
string rootSourceDir = Path.Combine(rootWorkingDir, sourceSubDir);
string rootTargetDir = Path.Combine(rootWorkingDir, "Target");
///////////////////////////////////
// Create root target - created by task
///////////////////////////////////
//Directory.CreateDirectory(rootTargetDir);
///////////////////////////////////
// Setup source test structure
///////////////////////////////////
DirectoryInfo sourceDirInfo = Directory.CreateDirectory(rootSourceDir);
// Create test source
for (int i = 0; i < 3; i++)
{
// Create test files in root
TestFile.Create(Path.Combine(rootSourceDir, $"root-file{i}.txt"));
// Create some sub dirs with a file in
DirectoryInfo alphaInfo = sourceDirInfo.CreateSubdirectory($"SubAlpha{i}");
// Create some files in sub dir
for (int j = 0; j < 2; j++)
{
TestFile.Create(Path.Combine(alphaInfo.FullName, $"alpha-file{i}{j}.txt"));
}
// Create some sub-sub dirs with a file in
for (int k = 0; k < 2; k++)
{
string betaPath = alphaInfo.CreateSubdirectory($"SubBeta{k}").FullName;
TestFile.Create(Path.Combine(betaPath, $"beta-file{i}{k}.md"));
}
}
///////////////////////////////////
// Add some hidden files
///////////////////////////////////
int hiddenFileCount = 0;
// Add hidden file to source root
string hiddenFile = Path.Combine(rootSourceDir, ".hidden-file1.txt");
TestFile.Create(hiddenFile);
File.SetAttributes(hiddenFile, FileAttributes.Hidden);
hiddenFileCount++;
// Add hidden directory
string hiddenDir = Path.Combine(rootSourceDir, ".hidden-dir");
DirectoryInfo hiddenDirInfo = Directory.CreateDirectory(hiddenDir);
hiddenDirInfo.Attributes = FileAttributes.Directory | FileAttributes.Hidden;
// Add file to hidden directory
string hiddenFile2 = Path.Combine(hiddenDir, ".hidden-file2.txt");
TestFile.Create(hiddenFile2);
//File.SetAttributes(hiddenFile2, FileAttributes.Hidden); // App considers files in hidden dir also hidden
hiddenFileCount++;
return(new Tuple <string, string, int>(rootSourceDir, rootTargetDir, hiddenFileCount));
}