private void GenerateDirNodeWithMetadata( DirNode parent, int dirLevel) { FileNode fileNode = new FileNode(DMLibTestBase.FileName + "_0"); parent.AddFileNode(fileNode); fileNode = new FileNode(DMLibTestBase.FileName + "_1"); parent.AddFileNode(fileNode); if (dirLevel <= 0) { return; } --dirLevel; DirNode dirNode = new DirNode(DMLibTestBase.DirName + "_0"); dirNode.Metadata = new Dictionary <string, string>(); dirNode.Metadata.Add("Name0", "Value0"); dirNode.Metadata.Add("Name1", "Value1"); this.GenerateDirNodeWithMetadata(dirNode, dirLevel); parent.AddDirNode(dirNode); dirNode = new DirNode(DMLibTestBase.DirName + "_1"); dirNode.Metadata = new Dictionary <string, string>(); dirNode.Metadata.Add("Name0", "Value0"); dirNode.Metadata.Add("Name1", "Value1"); this.GenerateDirNodeWithMetadata(dirNode, dirLevel); parent.AddDirNode(dirNode); }
private void GenerateDirNodeWithPermissions( DirNode parent, int dirLevel, string permissions) { FileNode fileNode = new FileNode(DMLibTestBase.FileName + "_0"); fileNode.SizeInByte = 1024; fileNode.PortableSDDL = permissions; parent.AddFileNode(fileNode); fileNode = new FileNode(DMLibTestBase.FileName + "_1"); fileNode.SizeInByte = 1024; fileNode.PortableSDDL = permissions; parent.AddFileNode(fileNode); if (dirLevel <= 0) { return; } --dirLevel; DirNode dirNode = new DirNode(DMLibTestBase.DirName + "_0"); dirNode.PortableSDDL = permissions; this.GenerateDirNodeWithPermissions(dirNode, dirLevel, permissions); parent.AddDirNode(dirNode); dirNode = new DirNode(DMLibTestBase.DirName + "_1"); dirNode.PortableSDDL = permissions; this.GenerateDirNodeWithPermissions(dirNode, dirLevel, permissions); parent.AddDirNode(dirNode); }
private void GenerateDirNodeWithAttributes( DirNode parent, int dirLevel, CloudFileNtfsAttributes smbAttributes) { FileNode fileNode = new FileNode(DMLibTestBase.FileName + "_0"); fileNode.SizeInByte = 1024; fileNode.SMBAttributes = smbAttributes; parent.AddFileNode(fileNode); fileNode = new FileNode(DMLibTestBase.FileName + "_1"); fileNode.SizeInByte = 1024; fileNode.SMBAttributes = smbAttributes; parent.AddFileNode(fileNode); if (dirLevel <= 0) { return; } --dirLevel; DirNode dirNode = new DirNode(DMLibTestBase.DirName + "_0"); this.GenerateDirNodeWithAttributes(dirNode, dirLevel, smbAttributes); if (smbAttributes == CloudFileNtfsAttributes.Normal) { dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory; } else { dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory | smbAttributes; } parent.AddDirNode(dirNode); dirNode = new DirNode(DMLibTestBase.DirName + "_1"); this.GenerateDirNodeWithAttributes(dirNode, dirLevel, smbAttributes); if (smbAttributes == CloudFileNtfsAttributes.Normal) { dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory; } else { dirNode.SMBAttributes = CloudFileNtfsAttributes.Directory | smbAttributes; } parent.AddDirNode(dirNode); }
private void TestDelimiter(char delimiter) { Test.Info("Test delimiter: {0}", delimiter); DMLibDataInfo sourceDataInfo = new DMLibDataInfo(string.Empty); string fileName = DMLibTestBase.FolderName + delimiter + DMLibTestBase.FolderName + delimiter + DMLibTestBase.FileName; DMLibDataHelper.AddOneFile(sourceDataInfo.RootNode, fileName, 1); TransferContext context = new DirectoryTransferContext(); context.FileFailed += (sender, e) => { Test.Info(e.Exception.StackTrace); }; TestExecutionOptions <DMLibDataInfo> options = new TestExecutionOptions <DMLibDataInfo>() { IsDirectoryTransfer = true, TransferItemModifier = (node, item) => { dynamic dirOptions = DefaultTransferDirectoryOptions; dirOptions.Recursive = true; dirOptions.Delimiter = delimiter; item.Options = dirOptions; item.TransferContext = context; } }; TestResult <DMLibDataInfo> result = this.ExecuteTestCase(sourceDataInfo, options); DMLibDataInfo expectedDataInfo = new DMLibDataInfo(string.Empty); DirNode dirNode1 = new DirNode(FolderName); DirNode dirNode2 = new DirNode(FolderName); FileNode fileNode = sourceDataInfo.RootNode.GetFileNode(fileName).Clone(DMLibTestBase.FileName); dirNode2.AddFileNode(fileNode); dirNode1.AddDirNode(dirNode2); expectedDataInfo.RootNode.AddDirNode(dirNode1); VerificationHelper.VerifySingleTransferStatus(result, 1, 0, 0, null); VerificationHelper.VerifyTransferSucceed(result, expectedDataInfo); }
private static void PrepareSourceData() { DMLibDataInfo sourceFileTree = new DMLibDataInfo(string.Empty); DirNode dirNode1 = new DirNode("folder1"); DirNode subDir1 = new DirNode("subfolder1"); subDir1.AddDirNode(new DirNode("subfolder3")); subDir1.AddFileNode(GenerateFileNode("testfile2")); subDir1.AddFileNode(GenerateFileNode("4testfile")); dirNode1.AddDirNode(subDir1); DirNode subDir2 = new DirNode("subfolder2"); DirNode subDir4 = new DirNode("subfolder4"); subDir4.AddFileNode(GenerateFileNode("test5")); subDir2.AddDirNode(subDir4); subDir2.AddFileNode(GenerateFileNode("TESTFILE345")); subDir2.AddFileNode(GenerateFileNode("testYfile")); subDir2.AddFileNode(GenerateFileNode("f_arbitrary.exe")); subDir2.AddFileNode(GenerateFileNode("测试x文件")); dirNode1.AddDirNode(subDir2); dirNode1.AddFileNode(GenerateFileNode("testfile1")); dirNode1.AddFileNode(GenerateFileNode("TestFile2")); dirNode1.AddFileNode(GenerateFileNode("测试文件2")); sourceFileTree.RootNode.AddDirNode(dirNode1); DirNode dirNode2 = new DirNode("folder2"); dirNode2.AddFileNode(GenerateFileNode("folder_file")); dirNode2.AddDirNode(new DirNode("testfile1")); dirNode2.AddFileNode(GenerateFileNode("测试文件三")); dirNode2.AddFileNode(GenerateFileNode("测试四文件")); sourceFileTree.RootNode.AddDirNode(dirNode2); DirNode dirNode3 = new DirNode("folder3"); sourceFileTree.RootNode.AddDirNode(dirNode3); sourceFileTree.RootNode.AddFileNode(GenerateFileNode("testfile")); sourceFileTree.RootNode.AddFileNode(GenerateFileNode("testfile1")); sourceFileTree.RootNode.AddFileNode(GenerateFileNode("testfile2")); sourceFileTree.RootNode.AddFileNode(GenerateFileNode("testXfile")); sourceFileTree.RootNode.AddFileNode(GenerateFileNode("testXXfile")); sourceFileTree.RootNode.AddFileNode(GenerateFileNode("测试文件")); sourceFileTree.RootNode.AddFileNode(GenerateFileNode("..a123")); DMLibDataInfo blobSourceFileTree = sourceFileTree.Clone(); blobSourceFileTree.RootNode.AddFileNode(GenerateFileNode("TeSTfIle")); Test.Info("Start to generate test data, will take a while..."); foreach (DMLibDataType dataType in sourceDataTypes) { if (IsCloudBlob(dataType)) { PrepareSourceData(dataType, blobSourceFileTree.Clone()); } else { PrepareSourceData(dataType, sourceFileTree.Clone()); } } Test.Info("Done"); }
public static void AddTree(DirNode dirNode, string dirPrefix, string filePrefix, int width, int depth, int fileSizeInKB, FileAttributes? fa = null, DateTime? lmt = null) { for (int i = 0; i < width; ++i) { string fileName = i == 0 ? filePrefix : filePrefix + "_" + i; FileNode fileNode = new FileNode(fileName) { SizeInByte = 1024L * fileSizeInKB, FileAttr = fa, LastModifiedTime = lmt, }; dirNode.AddFileNode(fileNode); } if (depth > 0) { for (int i = 0; i < width; ++i) { string dirName = i == 0 ? dirPrefix : dirPrefix + "_" + i; DirNode subDirNode = dirNode.GetDirNode(dirName); if (subDirNode == null) { subDirNode = new DirNode(dirName); dirNode.AddDirNode(subDirNode); } DMLibDataHelper.AddTree(subDirNode, dirPrefix, filePrefix, width, depth - 1, fileSizeInKB, fa, lmt: lmt); } } }