public void RemoveRootDirectoryTest() { CommandAgent.RemoveDirectory(this.fileShare, "/"); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(record => record.AssertError(AssertUtil.InvalidResourceFullQualifiedErrorId, AssertUtil.AuthenticationFailedFullQualifiedErrorId)); }
public void CreateCasePreservingExistingDirectoryTest() { int length = this.randomProvider.Next(5, 50); string dirName = FileNamingGenerator.GenerateNameFromRange(length, new Tuple <int, int>((int)'a', (int)'z')); var directory = fileUtil.EnsureDirectoryExists(this.fileShare, dirName); // Randomly up case some letters StringBuilder sb = new StringBuilder(dirName); for (int i = 0; i < sb.Length; i++) { // 1/3 chance to up case the letters if (this.randomProvider.Next(3) == 0) { sb[i] = Char.ToUpperInvariant(sb[i]); } } string newDirName = sb.ToString(); Test.Info("Original dir name: {0}. New dir name: {1}.", dirName, newDirName); CommandAgent.NewDirectory(this.fileShare, newDirName); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ResourceAlreadyExistsFullQualifiedErrorId)); }
/// <summary> /// Positive functional test case 5.8.1 /// </summary> /// <remarks> /// RDTask 1414230: /// Test case DownloadExistingFile requires a 200G file already exist /// on the storage account in the file service. It does not make sense /// to generate a 200G file at runtime, upload it and download it in /// functional test cases. /// Currently, since the only test we could do is against dev fabric, /// we could not prepare such file on the cloud first. So the test case /// is temp blocked. /// Once the xSMB file service GAed, and we are testing against real /// storage accounts, we could put this case back online. /// </remarks> ////[TestMethod] ////[TestCategory(PsTag.File)] public void DownloadExistingFileTest() { string[] filesToDownload = Test.Data.Get("ExistingFilesToDownload").Split(';'); string[] md5Checksum = Test.Data.Get("ExistingFilesMD5").Split(';'); for (int i = 0; i < filesToDownload.Length; i++) { var destination = Path.Combine(Test.Data.Get("TempDir"), FileUtil.GetSpecialFileName()); try { Test.Info("About to download: {0} to {1}", filesToDownload[i], destination); CommandAgent.DownloadFile(this.fileShare, filesToDownload[i], destination); var result = CommandAgent.Invoke(); CommandAgent.AssertNoError(); result.AssertNoResult(); string destinationMD5 = FileUtil.GetFileContentMD5(destination); Test.Assert( destinationMD5.Equals(md5Checksum[i], StringComparison.Ordinal), "MD5 checksum of the downloaded file mismatches. Expected: {0}, Actural: {1}.", md5Checksum[i], destinationMD5); } finally { FileUtil.RemoveFile(destination); } } }
private void CreateShareInternal(Func <string> shareNameProvider, Action <IExecutionResult, string> assertAction, bool validateNotExists = true) { string shareName = shareNameProvider(); if (validateNotExists) { while (fileUtil.Client.GetShareReference(shareName).Exists()) { shareName = shareNameProvider(); } } try { CommandAgent.NewFileShare(shareName); assertAction(CommandAgent.Invoke(), shareName); } finally { if (validateNotExists) { fileUtil.DeleteFileShareIfExists(shareName); } } }
public void GetShareSnapshot_ExistTime() { string shareName = CloudFileUtil.GenerateUniqueFileShareName(); try { CloudFileShare share = fileUtil.EnsureFileShareExists(shareName); CloudFileShare shareSnapshot1 = share.Snapshot(); CommandAgent.GetFileShareByName(shareName, shareSnapshot1.SnapshotTime.Value); var result = CommandAgent.Invoke(); result.AssertObjectCollection(obj => result.AssertCloudFileContainer(obj, shareName, snapshotTime: shareSnapshot1.SnapshotTime.Value), 1); } finally { try { fileUtil.DeleteFileShareIfExists(shareName); } catch (Exception e) { Test.Warn("Unexpected exception when cleanup file share {0}: {1}", shareName, e); } } }
public void GetShareSnapshot_notExistTime() { string shareName = CloudFileUtil.GenerateUniqueFileShareName(); try { CloudFileShare share = fileUtil.EnsureFileShareExists(shareName); CloudFileShare shareSnapshot1 = share.Snapshot(); CommandAgent.GetFileShareByName(shareName, DateTime.Now.AddDays(-1)); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(record => record.AssertError(AssertUtil.ResourceNotFoundFullQualifiedErrorId)); result.AssertNoResult(); } finally { try { fileUtil.DeleteFileShareIfExists(shareName); } catch (Exception e) { Test.Warn("Unexpected exception when cleanup file share {0}: {1}", shareName, e); } } }
public void GetDirsToListDir() { fileUtil.CleanupDirectory(this.fileShare.GetRootDirectoryReference()); var dirNames = Enumerable.Range(0, this.randomProvider.Next(5, 20)).Select(x => CloudFileUtil.GenerateUniqueFileName()).ToList(); fileUtil.CleanupDirectory(this.fileShare.GetRootDirectoryReference()); var dirs = dirNames.Select(name => fileUtil.EnsureDirectoryExists(this.fileShare, name)).ToList(); var fileNames = Enumerable.Range(0, this.randomProvider.Next(5, 20)).Select(x => CloudFileUtil.GenerateUniqueFileName()).ToList(); var files = fileNames.Select(name => fileUtil.CreateFile(dirs[0], name)).ToList(); CommandAgent.GetFile(this.fileShare, dirNames[0]); ((PowerShellAgent)CommandAgent).PowerShellSession.AddCommand("Get-AzureStorageFile"); var result = CommandAgent.Invoke(); CommandAgent.AssertNoError(); result.AssertFileListItems(files, Enumerable.Empty <CloudFileDirectory>()); foreach (var dir in dirs) { fileNames = Enumerable.Range(0, this.randomProvider.Next(5, 20)).Select(x => CloudFileUtil.GenerateUniqueFileName()).ToList(); files.AddRange(fileNames.Select(name => fileUtil.CreateFile(dir, name)).ToList()); } CommandAgent.Clear(); CommandAgent.GetFile(this.fileShare); ((PowerShellAgent)CommandAgent).PowerShellSession.AddCommand("Get-AzureStorageFile"); result = CommandAgent.Invoke(); CommandAgent.AssertNoError(); result.AssertFileListItems(files, Enumerable.Empty <CloudFileDirectory>()); fileUtil.CleanupDirectory(this.fileShare.GetRootDirectoryReference()); }
public void PipelineCreatingMultipleDirectoriesWhileSomeDirectoryExistsTest() { int numberOfDirectories = this.randomProvider.Next(2, 33); int[] indexes = Enumerable.Range(0, numberOfDirectories).ToArray(); string[] names = indexes.Select(i => CloudFileUtil.GenerateUniqueDirectoryName()).ToArray(); int numberOfExistingDirectories = this.randomProvider.Next(1, numberOfDirectories); List <int> indexToBeRemoved = new List <int>(indexes); for (int i = 0; i < numberOfExistingDirectories; i++) { int id = this.randomProvider.Next(indexToBeRemoved.Count); fileUtil.EnsureDirectoryExists(this.fileShare, names[indexToBeRemoved[id]]); indexToBeRemoved.RemoveAt(id); } CommandAgent.NewDirectoryFromPipeline(this.fileShare.Name); var result = CommandAgent.Invoke(names); // A total number of "numberOfExistingDirectories" errors should throw while others should success. CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ResourceAlreadyExistsFullQualifiedErrorId), numberOfExistingDirectories); // Assert all directories are created foreach (string name in names) { fileUtil.AssertDirectoryExists(this.fileShare, name, string.Format("Directory {0} should exist after created.", name)); } }
public void GetShareSnapshot_CheckIncludeSnapshot() { string shareName = CloudFileUtil.GenerateUniqueFileShareName(); string fileName = CloudFileUtil.GenerateUniqueFileName(); try { CloudFileShare share = fileUtil.EnsureFileShareExists(shareName); CloudFileShare shareSnapshot1 = share.Snapshot(); fileUtil.CreateFile(share, fileName); CloudFileShare shareSnapshot2 = share.Snapshot(); CommandAgent.GetFileShareByName(""); var result = CommandAgent.Invoke(); List <DateTimeOffset> snapshotTimes = new List <DateTimeOffset>(); snapshotTimes.Add(shareSnapshot1.SnapshotTime.Value); snapshotTimes.Add(shareSnapshot2.SnapshotTime.Value); result.AssertCloudFileContainersExist(shareName, snapshotTimes); } finally { try { fileUtil.DeleteFileShareIfExists(shareName); } catch (Exception e) { Test.Warn("Unexpected exception when cleanup file share {0}: {1}", shareName, e); } } }
public void DownloadBatchFilesFromListingResult() { int numberOfFilesToDownload = this.randomProvider.Next(5, 20); List <CloudFile> files = new List <CloudFile>(); List <string> fileNames = new List <string>(); for (int i = 0; i < numberOfFilesToDownload; i++) { string cloudFileName = CloudFileUtil.GenerateUniqueFileName(); string localFilePath = Path.Combine(Test.Data.Get("TempDir"), CloudFileUtil.GenerateUniqueFileName()); FileUtil.GenerateSmallFile(localFilePath, Utility.GetRandomTestCount(5, 10), true); files.Add(fileUtil.CreateFile(this.fileShare, cloudFileName, localFilePath)); File.Delete(localFilePath); fileNames.Add(cloudFileName.ToLowerInvariant()); } DirectoryInfo localDir = new DirectoryInfo(Test.Data.Get("TempDir")); CommandAgent.GetFile(this.fileShare); ((PowerShellAgent)CommandAgent).PowerShellSession.AddCommand("Get-AzureStorageFileContent"); ((PowerShellAgent)CommandAgent).PowerShellSession.AddParameter("Destination", localDir.FullName); CommandAgent.Invoke(); CommandAgent.AssertNoError(); var localFilesInfo = localDir.GetFiles(); foreach (var fileInfo in localFilesInfo) { fileNames.Remove(fileInfo.Name.ToLowerInvariant()); } Test.Assert(fileNames.Count == 0, "All files should be downloaded while missing: {0}", string.Join(",", fileNames)); }
public void GetFileShareUsageTest() { string fileShareName = CloudFileUtil.GenerateUniqueFileShareName(); string cloudFileName = CloudFileUtil.GenerateUniqueFileName(); var fileShare = fileUtil.EnsureFileShareExists(fileShareName); try { CommandAgent.GetFileShareByName(fileShareName); var result = CommandAgent.Invoke(); CommandAgent.AssertNoError(); result.AssertObjectCollection(obj => result.AssertCloudFileContainer(obj, fileShareName), 1); fileUtil.CreateFile(fileShare.GetRootDirectoryReference(), cloudFileName); CommandAgent.Clear(); CommandAgent.GetFileShareByName(fileShareName); result = CommandAgent.Invoke(); CommandAgent.AssertNoError(); result.AssertObjectCollection(obj => result.AssertCloudFileContainer(obj, fileShareName, 1), 1); } finally { fileUtil.DeleteFileShareIfExists(fileShareName); } }
public void PipelineMultipleShareNamesToRemoveTest() { // TODO: Generate more random names for file shares after the // naming rules is settled down. int numberOfShares = this.randomProvider.Next(2, 33); string[] names = Enumerable.Range(0, numberOfShares) .Select(i => CloudFileUtil.GenerateUniqueFileShareName()).ToArray(); foreach (var name in names) { fileUtil.EnsureFileShareExists(name); } try { CommandAgent.RemoveFileShareFromPipeline(); var result = CommandAgent.Invoke(names); CommandAgent.AssertNoError(); result.AssertNoResult(); } finally { foreach (string fileShareName in names) { fileUtil.DeleteFileShareIfExists(fileShareName); } } }
private void UploadMultipleThroughPipeline(int numberOfFiles, int numberOfExistingFiles) { string localFilePath = Path.Combine(Test.Data.Get("TempDir"), CloudFileUtil.GenerateUniqueFileName()); FileUtil.GenerateSmallFile(localFilePath, Utility.GetRandomTestCount(5, 10), true); int[] indexes = Enumerable.Range(0, numberOfFiles).ToArray(); string[] names = indexes.Select(i => CloudFileUtil.GenerateUniqueFileName()).ToArray(); List <int> indexToBeRemoved = new List <int>(indexes); for (int i = 0; i < numberOfExistingFiles; i++) { int id = this.randomProvider.Next(indexToBeRemoved.Count); fileUtil.CreateFile(this.fileShare, names[indexToBeRemoved[id]]); indexToBeRemoved.RemoveAt(id); } CommandAgent.UploadFilesFromPipeline(this.fileShare.Name, localFilePath); var result = CommandAgent.Invoke(names); // Assert all files are created foreach (string name in names) { fileUtil.AssertFileExists(this.fileShare, name, string.Format("File {0} should exist after created.", name)); } }
public void DownloadFileUsingRelativePathAfterChangedDefaultLocation() { string currentPath = CommandAgent.GetCurrentLocation(); try { string cloudFileName = CloudFileUtil.GenerateUniqueFileName(); string localFilePath = Path.Combine(Test.Data.Get("TempDir"), CloudFileUtil.GenerateUniqueFileName()); FileUtil.GenerateSmallFile(localFilePath, Utility.GetRandomTestCount(5, 10), true); var sourceFile = fileUtil.CreateFile(this.fileShare, cloudFileName, localFilePath); CommandAgent.ChangeLocation(Test.Data.Get("TempDir")); UploadAndDownloadFileInternal( sourceFile, FileUtil.GetFileContentMD5(localFilePath), destination => CommandAgent.DownloadFile(this.fileShare, cloudFileName, ".", true)); var result = CommandAgent.Invoke(); result.AssertNoResult(); Test.Assert(new FileInfo(Path.Combine(Test.Data.Get("TempDir"), cloudFileName)).Exists, "File should exist after downloaded."); } finally { CommandAgent.Clear(); CommandAgent.ChangeLocation(currentPath); } }
public void NewDirectoryWithNullShareObjectTest() { ((PowerShellAgent)CommandAgent).PowerShellSession.AddScript("New-AzureStorageDirectory -Share $null -Path dir"); var result = CommandAgent.Invoke(); result.AssertNoResult(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ParameterArgumentValidationErrorFullQualifiedErrorId)); }
public void CreateDirectoryWithNoPath_FileShareName() { ((PowerShellAgent)CommandAgent).PowerShellSession.AddScript("New-AzureStorageDirectory -ShareName " + this.fileShare.Name); var result = CommandAgent.Invoke(); result.AssertNoResult(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.MissingMandatoryParameterFullQualifiedErrorId)); }
public void DownloadFileUsingNullFileObjectTest() { ((PowerShellAgent)CommandAgent).PowerShellSession.AddScript("Get-AzureStorageFileContent -File $null -Destination ."); var result = CommandAgent.Invoke(); result.AssertNoResult(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ParameterArgumentValidationErrorFullQualifiedErrorId)); }
public void ListFilesUsingNullDirectoryObjectTest() { ((PowerShellAgent)CommandAgent).PowerShellSession.AddScript("Get-AzureStorageFile -Directory $null"); var result = CommandAgent.Invoke(); result.AssertNoResult(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ParameterArgumentValidationErrorFullQualifiedErrorId)); }
public void NewShareWithEmptyNameTest() { ((PowerShellAgent)CommandAgent).PowerShellSession.AddScript("New-AzureStorageShare -Name \"\""); var result = CommandAgent.Invoke(); result.AssertNoResult(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ParameterArgumentValidationErrorFullQualifiedErrorId)); }
public void GetShareByPrefixUsingWildCardTest() { string shareName = string.Concat("*", CloudFileUtil.GenerateUniqueFileShareName()); CommandAgent.GetFileShareByPrefix(shareName); CommandAgent.Invoke(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.InvalidArgumentFullQualifiedErrorId)); }
public void RemoveDirectoryWithNoPath_FileShare() { CommandAgent.SetVariable("share", this.fileShare); ((PowerShellAgent)CommandAgent).PowerShellSession.AddScript("Remove-AzureStorageDirectory -Share $share"); var result = CommandAgent.Invoke(); result.AssertNoResult(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.MissingMandatoryParameterFullQualifiedErrorId)); }
public void UploadFileFromSubDirectoryOfRootTest() { string localFilePath = Path.Combine(Test.Data.Get("TempDir"), CloudFileUtil.GenerateUniqueFileName()); FileUtil.GenerateSmallFile(localFilePath, Utility.GetRandomTestCount(5, 10), true); CommandAgent.UploadFile(this.fileShare, localFilePath, "../a"); CommandAgent.Invoke(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.InvalidResourceFullQualifiedErrorId, AssertUtil.AuthenticationFailedFullQualifiedErrorId)); }
public void DownloadingNonExistingFile() { string cloudFileName = CloudFileUtil.GenerateUniqueFileName(); var file = fileUtil.DeleteFileIfExists(this.fileShare, cloudFileName); CommandAgent.DownloadFile(file, Test.Data.Get("TempDir"), true); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.InvalidOperationExceptionFullQualifiedErrorId, AssertUtil.PathNotFoundFullQualifiedErrorId, AssertUtil.ResourceNotFoundFullQualifiedErrorId)); }
public void CreateExistingDirectoryTest() { string dirName = CloudFileUtil.GenerateUniqueDirectoryName(); var directory = fileUtil.EnsureDirectoryExists(this.fileShare, dirName); CommandAgent.NewDirectory(this.fileShare, dirName); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ResourceAlreadyExistsFullQualifiedErrorId)); }
public void RemoveNonExistingDirectoryTest() { string dir = CloudFileUtil.GenerateUniqueDirectoryName(); fileUtil.DeleteDirectoryIfExists(this.fileShare, dir); CommandAgent.RemoveDirectory(this.fileShare, dir); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(record => record.AssertError(AssertUtil.ResourceNotFoundFullQualifiedErrorId)); }
public void RemoveDirectoryUnderNonExistingShareTest() { string shareName = CloudFileUtil.GenerateUniqueFileShareName(); string dir = CloudFileUtil.GenerateUniqueDirectoryName(); fileUtil.DeleteFileShareIfExists(shareName); CommandAgent.RemoveDirectory(shareName, dir); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(record => record.AssertError(AssertUtil.ShareNotFoundFullQualifiedErrorId)); }
public void RemoveNonExistingFile() { string fileName = CloudFileUtil.GenerateUniqueFileName(); fileUtil.DeleteFileIfExists(this.fileShare, fileName); CommandAgent.RemoveFile(this.fileShare, fileName); var result = CommandAgent.Invoke(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.ResourceNotFoundFullQualifiedErrorId)); }
public void CreateDirectoryWithNoPath_Directory() { var dir = fileUtil.EnsureDirectoryExists(this.fileShare, CloudFileUtil.GenerateUniqueDirectoryName()); CommandAgent.SetVariable("dir", dir); ((PowerShellAgent)CommandAgent).PowerShellSession.AddScript("New-AzureStorageDirectory -Directory $dir"); var result = CommandAgent.Invoke(); result.AssertNoResult(); CommandAgent.AssertErrors(err => err.AssertError(AssertUtil.MissingMandatoryParameterFullQualifiedErrorId)); }
public void CreateDirectoryAndListThroughPSHTest() { string directoryName = CloudFileUtil.GenerateUniqueDirectoryName(); this.mountedShareRoot.CreateSubdirectory(directoryName); CommandAgent.GetFile(this.fileShare); var result = CommandAgent.Invoke(); CommandAgent.AssertNoError(); result.AssertObjectCollection(obj => obj.AssertCloudFileDirectory(directoryName)); }
public void CreateDirectoryAndListThroughSMBTest() { string directoryName = CloudFileUtil.GenerateUniqueDirectoryName(); CommandAgent.NewDirectory(this.fileShare, directoryName); CommandAgent.Invoke(); CommandAgent.AssertNoError(); SMBValidationRetry( () => this.mountedShareRoot.GetDirectories().Select(x => x.Name).Contains(directoryName), "list the newly created directory through SMB protocol"); }