public void TransferDirectoryDifferentSizeObject() { DMLibDataInfo sourceDataInfo = new DMLibDataInfo("rootfolder"); DMLibDataHelper.AddMultipleFilesNormalSize(sourceDataInfo.RootNode, BVT.UnicodeFileName); var options = new TestExecutionOptions <DMLibDataInfo>() { IsDirectoryTransfer = true, TransferItemModifier = (notUsed, item) => { dynamic transferOptions = DefaultTransferDirectoryOptions; transferOptions.Recursive = true; item.Options = transferOptions; }, }; var result = this.ExecuteTestCase(sourceDataInfo, options); // For sync copy, recalculate md5 of destination by downloading the file to local. if (IsCloudService(DMLibTestContext.DestType) && !DMLibTestContext.IsAsync) { DMLibDataHelper.SetCalculatedFileMD5(result.DataInfo, DestAdaptor); } Test.Assert(result.Exceptions.Count == 0, "Verify no exception is thrown."); Test.Assert(DMLibDataHelper.Equals(sourceDataInfo, result.DataInfo), "Verify transfer result."); }
public void TransferDifferentSizeObject() { DMLibDataInfo sourceDataInfo = new DMLibDataInfo(string.Empty); DMLibDataHelper.AddMultipleFilesNormalSize(sourceDataInfo.RootNode, BVT.UnicodeFileName); var options = new TestExecutionOptions <DMLibDataInfo>(); options.AfterDataPrepared = () => { if ((DMLibTestContext.SourceType == DMLibDataType.CloudFile || DMLibTestContext.SourceType == DMLibDataType.PageBlob) && !DMLibTestContext.IsAsync) { string sparseFileName = "SparseFile"; DMLibDataHelper.AddOneFile(sourceDataInfo.RootNode, sparseFileName, 1); FileNode sparseFileNode = sourceDataInfo.RootNode.GetFileNode(sparseFileName); if (DMLibTestContext.SourceType == DMLibDataType.CloudFile) { CloudFileDataAdaptor cloudFileDataAdaptor = SourceAdaptor as CloudFileDataAdaptor; CloudFile sparseCloudFile = cloudFileDataAdaptor.GetCloudFileReference(sourceDataInfo.RootPath, sparseFileNode); this.PrepareCloudFileWithDifferentSizeRange(sparseCloudFile); sparseFileNode.MD5 = sparseCloudFile.Properties.ContentMD5; sparseFileNode.Metadata = sparseCloudFile.Metadata; } else if (DMLibTestContext.SourceType == DMLibDataType.PageBlob) { CloudBlobDataAdaptor cloudBlobDataAdaptor = SourceAdaptor as CloudBlobDataAdaptor; CloudPageBlob sparsePageBlob = cloudBlobDataAdaptor.GetCloudBlobReference(sourceDataInfo.RootPath, sparseFileNode) as CloudPageBlob; this.PreparePageBlobWithDifferenSizePage(sparsePageBlob); sparseFileNode.MD5 = sparsePageBlob.Properties.ContentMD5; sparseFileNode.Metadata = sparsePageBlob.Metadata; } } }; var result = this.ExecuteTestCase(sourceDataInfo, options); // For sync copy, recalculate md5 of destination by downloading the file to local. if (IsCloudService(DMLibTestContext.DestType) && !DMLibTestContext.IsAsync) { DMLibDataHelper.SetCalculatedFileMD5(result.DataInfo, DestAdaptor); } Test.Assert(result.Exceptions.Count == 0, "Verify no exception is thrown."); Test.Assert(DMLibDataHelper.Equals(sourceDataInfo, result.DataInfo), "Verify transfer result."); }