Пример #1
0
        public void FailsWhenNoSourceFilesToZipTest()
        {
            IAction action = new ZipFilesAction()
            {
                LoggingService = ServicesContainer.ServicesProvider.GetLoggingService(null)
            };

            string outputZipPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ".zip");

            var actionResult = action.Execute(ArgumentCollection.New()
                                              .WithArgument(ZipFilesActionInstanceArgs.ArchivePath, outputZipPath));

            Assert.IsNotNull(actionResult);
            Assert.IsFalse(actionResult.Result);
            Assert.IsNotNull(actionResult.AttachedException);
            Assert.AreEqual(typeof(MissingArgumentsException), actionResult.AttachedException.GetType());

            actionResult = action.Execute(ArgumentCollection.New()
                                          .WithArgument(ZipFilesActionExecutionArgs.ArchivePath, outputZipPath));

            Assert.IsNotNull(actionResult);
            Assert.IsFalse(actionResult.Result);
            Assert.IsNotNull(actionResult.AttachedException);
            Assert.AreEqual(typeof(MissingArgumentsException), actionResult.AttachedException.GetType());

            // CLEANUP
            if (File.Exists(outputZipPath))
            {
                File.Delete(outputZipPath);
            }
        }
Пример #2
0
        public void MoveZippedFilesTest()
        {
            ZipFilesAction action = new ZipFilesAction()
            {
                LoggingService  = ServicesContainer.ServicesProvider.GetLoggingService(nameof(ZipFilesAction)),
                MoveZippedFiles = true
            };


            string ticks = $"{DateTime.Now.Ticks}";

            string filesDirectory  = Path.Combine(Path.GetTempPath(), $"dir-{ticks}");
            string movingDirectory = Path.Combine(filesDirectory, "moved");

            action.MoveZippedFilesToPath = movingDirectory;

            string file1ToZip = Path.Combine(filesDirectory, $"file-1-{ticks}.txt");
            string file2ToZip = Path.Combine(filesDirectory, $"file-1-{ticks}.txt");
            string outputZip  = Path.Combine(filesDirectory, $"output-{ticks}.zip");

            // Create filesDirectory
            Directory.CreateDirectory(filesDirectory);
            Assert.IsTrue(Directory.Exists(filesDirectory));

            // Create file 1
            File.WriteAllText(file1ToZip, nameof(file1ToZip));
            File.WriteAllText(file2ToZip, nameof(file2ToZip));

            // With execution: list of files
            var actionResult = action.Execute(ArgumentCollection.New()
                                              .WithArgument(ZipFilesActionExecutionArgs.FilesPaths, new List <string>()
            {
                file1ToZip, file2ToZip
            })
                                              .WithArgument(ZipFilesActionExecutionArgs.ArchivePath, outputZip)
                                              );

            Assert.IsNotNull(actionResult);
            Assert.IsTrue(actionResult.Result);
            Assert.IsTrue(File.Exists(outputZip));
            File.Delete(outputZip);

            Assert.IsFalse(File.Exists(file1ToZip));
            Assert.IsFalse(File.Exists(file2ToZip));

            Assert.IsTrue(File.Exists(Path.Combine(movingDirectory, Path.GetFileName(file1ToZip))));
            Assert.IsTrue(File.Exists(Path.Combine(movingDirectory, Path.GetFileName(file2ToZip))));

            // CLEANUP
            if (Directory.Exists(filesDirectory))
            {
                Directory.Delete(filesDirectory, true);
            }
        }
Пример #3
0
        public void FailsWhenNoOutputZipFileTest()
        {
            IAction action = new ZipFilesAction()
            {
                LoggingService = ServicesContainer.ServicesProvider.GetLoggingService(null)
            };

            string ticks = $"{DateTime.Now.Ticks}";

            string filesDirectory = Path.Combine(Path.GetTempPath(), $"dir-{ticks}");

            string file1ToZip = Path.Combine(filesDirectory, $"file-1-{ticks}.txt");
            string file2ToZip = Path.Combine(filesDirectory, $"file-1-{ticks}.txt");

            // Create filesDirectory
            Directory.CreateDirectory(filesDirectory);
            Assert.IsTrue(Directory.Exists(filesDirectory));

            // Create file 1
            File.WriteAllText(file1ToZip, nameof(file1ToZip));
            File.WriteAllText(file2ToZip, nameof(file1ToZip));

            // With execution: list of files
            var actionResult = action.Execute(ArgumentCollection.New()
                                              .WithArgument(ZipFilesActionExecutionArgs.FilesPaths, new List <string>()
            {
                file1ToZip, file2ToZip
            }));

            Assert.IsNotNull(actionResult);
            Assert.IsFalse(actionResult.Result);
            Assert.IsNotNull(actionResult.AttachedException);
            Assert.AreEqual(typeof(MissingArgumentsException), actionResult.AttachedException.GetType());

            // With execution : files in directory
            actionResult = action.Execute(ArgumentCollection.New()
                                          .WithArgument(ZipFilesActionExecutionArgs.FilesInDirectoryPath, filesDirectory));


            Assert.IsNotNull(actionResult);
            Assert.IsFalse(actionResult.Result);
            Assert.IsNotNull(actionResult.AttachedException);
            Assert.AreEqual(typeof(MissingArgumentsException), actionResult.AttachedException.GetType());

            // With execution: single File
            ((ZipFilesAction)action).FilePath = file1ToZip;
            actionResult = action.Execute(ArgumentCollection.New());

            Assert.IsNotNull(actionResult);
            Assert.IsFalse(actionResult.Result);
            Assert.IsNotNull(actionResult.AttachedException);
            Assert.AreEqual(typeof(MissingArgumentsException), actionResult.AttachedException.GetType());

            // With execution : files in directory
            ((ZipFilesAction)action).FilePath             = null;
            ((ZipFilesAction)action).FilesInDirectoryPath = filesDirectory;
            actionResult = action.Execute(ArgumentCollection.New());


            Assert.IsNotNull(actionResult);
            Assert.IsFalse(actionResult.Result);
            Assert.IsNotNull(actionResult.AttachedException);
            Assert.AreEqual(typeof(MissingArgumentsException), actionResult.AttachedException.GetType());

            // CLEANUP
            if (Directory.Exists(filesDirectory))
            {
                Directory.Delete(filesDirectory, true);
            }

            if (File.Exists(file1ToZip))
            {
                File.Delete(file1ToZip);
            }

            if (File.Exists(file2ToZip))
            {
                File.Delete(file2ToZip);
            }
        }
Пример #4
0
        public void SuccessWhenFilesExistTest()
        {
            IAction action = new ZipFilesAction()
            {
                LoggingService = ServicesContainer.ServicesProvider.GetLoggingService(null)
            };

            string ticks = $"{DateTime.Now.Ticks}";

            string filesDirectory = Path.Combine(Path.GetTempPath(), $"dir-{ticks}");

            string file1ToZip = Path.Combine(filesDirectory, $"file-1-{ticks}.txt");
            string file2ToZip = Path.Combine(filesDirectory, $"file-1-{ticks}.txt");
            string outputZip  = Path.Combine(filesDirectory, $"output-{ticks}.zip");

            // Create filesDirectory
            Directory.CreateDirectory(filesDirectory);
            Assert.IsTrue(Directory.Exists(filesDirectory));

            // Create file 1
            File.WriteAllText(file1ToZip, nameof(file1ToZip));
            File.WriteAllText(file2ToZip, nameof(file2ToZip));

            // With execution: list of files
            var actionResult = action.Execute(ArgumentCollection.New()
                                              .WithArgument(ZipFilesActionExecutionArgs.FilesPaths, new List <string>()
            {
                file1ToZip, file2ToZip
            })
                                              .WithArgument(ZipFilesActionExecutionArgs.ArchivePath, outputZip)
                                              );

            Assert.IsNotNull(actionResult);
            Assert.IsTrue(actionResult.Result);
            Assert.IsTrue(File.Exists(outputZip));
            File.Delete(outputZip);

            // With execution : files in directory
            // directory empty => Not files to zip
            actionResult = action.Execute(ArgumentCollection.New()
                                          .WithArgument(ZipFilesActionExecutionArgs.FilesInDirectoryPath, filesDirectory)
                                          .WithArgument(ZipFilesActionExecutionArgs.ArchivePath, outputZip)
                                          );


            Assert.IsNotNull(actionResult);
            Assert.IsTrue(actionResult.Result);
            Assert.IsTrue(File.Exists(outputZip));
            File.Delete(outputZip);

            // With execution: single File
            ((ZipFilesAction)action).FilePath = file1ToZip;
            actionResult = action.Execute(ArgumentCollection.New()
                                          .WithArgument(ZipFilesActionExecutionArgs.ArchivePath, outputZip)
                                          );

            Assert.IsNotNull(actionResult);
            Assert.IsTrue(actionResult.Result);
            Assert.IsTrue(File.Exists(outputZip));
            File.Delete(outputZip);

            // With execution : files in directory
            ((ZipFilesAction)action).FilePath             = null;
            ((ZipFilesAction)action).FilesInDirectoryPath = filesDirectory;
            actionResult = action.Execute(ArgumentCollection.New()
                                          .WithArgument(ZipFilesActionExecutionArgs.ArchivePath, outputZip)
                                          );


            Assert.IsNotNull(actionResult);
            Assert.IsTrue(actionResult.Result);
            Assert.IsTrue(File.Exists(outputZip));
            File.Delete(outputZip);

            // CLEANUP
            if (Directory.Exists(filesDirectory))
            {
                Directory.Delete(filesDirectory, true);
            }

            if (File.Exists(file1ToZip))
            {
                File.Delete(file1ToZip);
            }

            if (File.Exists(file2ToZip))
            {
                File.Delete(file2ToZip);
            }

            if (File.Exists(outputZip))
            {
                File.Delete(outputZip);
            }
        }