private void DoTypicalScenario(bool isPreview) { // arrange var copyActionText = isPreview ? "Copy Preview" : "Copying"; var regex = new Regex(string.Format(@"{0} (.+) to", copyActionText), RegexOptions.IgnoreCase); var copier = new CopyManager(_sourceRootFolder, _destinationRootFolder, new FileHelper(), isPreview); // act var isCopySuccess = copier.CopyFiles(); // assert Assert.That(isCopySuccess, Is.True, "Not Successful"); Assert.That(copier.FileCopyLog, Is.Not.Null, "NULL File List"); Assert.That(copier.FileCopyLog.Length, Is.GreaterThan(0), "EMPTY File List"); Console.WriteLine("File List:\r\n"); Console.WriteLine(copier.FileCopyLog); foreach (var file in copier.FileCopyLog.Split("\r\n".ToCharArray())) { if (!string.IsNullOrEmpty(file)) { var sourceFileName = regex.Match(file).Groups[1].Value; Assert.That(File.Exists(sourceFileName), Is.True, string.Format("File: {0} does not exists", sourceFileName)); var destinationFileName = sourceFileName.Replace(_sourceRootFolder, _destinationRootFolder); var destinationFileInfo = new FileInfo(destinationFileName); if (!isPreview) { Assert.That(destinationFileInfo.Directory.Exists, Is.True, string.Format("Destination folder {0} does not exist", destinationFileInfo.DirectoryName)); Assert.That(File.Exists(destinationFileName), Is.True, string.Format("File: {0} does not exists", destinationFileName)); } var sourceFileInfo = new FileInfo(sourceFileName); var isReadonly = sourceFileInfo.Attributes.HasFlag(FileAttributes.ReadOnly); Assert.That(isReadonly, Is.False, string.Format("File: {0} is read-only", sourceFileName)); // NOTE: this only works if there are in fact files checked out } } }
public void CopyManager_UseIgnoreList_ShouldOnlyCopyUnignoredFiles() { // arrange var helper = new CopyManagerTestHelper(); helper.ArrangeTypicalScenario("Copying", _sourceRootFolder, _destinationRootFolder, "File2.txt"); var copier = new CopyManager(_sourceRootFolder, _destinationRootFolder, helper.MockHelper.Object, false); // act var isCopySuccess = copier.CopyFiles(); // assert Assert.That(isCopySuccess, Is.True, "Not Successful"); Assert.That(copier.FileCopyLog, Is.EqualTo(helper.ExpectedFileLog.ToString()), "Wrong File List"); }
private static void CopyFiles(string sourceFolder, string destinationFolder, bool isPreview) { if (!Directory.Exists(sourceFolder)) { Console.WriteLine("Source folder: {0} does not exist.", sourceFolder); return; } Console.WriteLine("Copying files from {0} to {1}", sourceFolder, destinationFolder); var copier = new CopyManager(sourceFolder, destinationFolder, new FileHelper(), isPreview); var success = copier.CopyFiles(); Console.WriteLine("File Copy was {0}", success ? "Successful!" : "unsuccessful"); Console.WriteLine("Copy log is as follows:"); Console.WriteLine(copier.FileCopyLog); }
public void CopyManager_ExceptionThrown_ShouldSucceed() { // arrange var fileInUseText = "File in use"; var sourceFile = Path.Combine(_sourceRootFolder, "File1.txt"); var destinationFile = Path.Combine(_destinationRootFolder, "File1.txt"); var expectedErrorInfo = string.Format("ERROR: Unable to copy {0}\r\nMessage: {1}\r\nDetails: System.IO.IOException: {1}\r\n", sourceFile, fileInUseText); var helper = new CopyManagerTestHelper(); helper.ArrangeTypicalScenario("Copying", _sourceRootFolder, _destinationRootFolder, string.Empty); helper.MockHelper.Setup(x => x.FileCopy(sourceFile, destinationFile, true)).Throws(new IOException(fileInUseText)); var copier = new CopyManager(_sourceRootFolder, _destinationRootFolder, helper.MockHelper.Object, false); // act var isCopySuccess = copier.CopyFiles(); // assert Assert.That(isCopySuccess, Is.True, "Not Successful"); Assert.That(copier.FileCopyLog.Contains(expectedErrorInfo), Is.True, "File Copy Log missing error info\r\nCopy Log:" + copier.FileCopyLog); }
private void DoTypicalScenario(string copyActionText, bool isPreview) { // arrange var helper = new CopyManagerTestHelper(); helper.ArrangeTypicalScenario(copyActionText, _sourceRootFolder, _destinationRootFolder, "debug"); var copier = new CopyManager(_sourceRootFolder, _destinationRootFolder, helper.MockHelper.Object, isPreview); // act var isCopySuccess = copier.CopyFiles(); // assert Assert.That(isCopySuccess, Is.True, "Not Successful"); Assert.That(copier.FileCopyLog, Is.EqualTo(helper.ExpectedFileLog.ToString()), "Wrong File List"); }