public void InvalidSearchPattern()
 {
     Assert.ThrowsException <InvalidWorkflowException>(() =>
                                                       WorkflowTester.CompileAndRun(new CleanUpFolder
     {
         SearchPattern = new InArgument <int>(100)
     }, GetArgs(IOSamples.GetTestPath(), null)));
 }
Esempio n. 2
0
        public void InvalidPath()
        {
            int filesCount = 0;

            Assert.ThrowsException <FileNotFoundException>(() => WorkflowTester.Run(new ZipEntriesCount()
            {
                FilesCount = new System.Activities.OutArgument <int>(_ => filesCount)
            }, GetArgs("../fake.zip")));
        }
        public void DefaultString()
        {
            var result = WorkflowTester.Invoke(new ExtractDataColumnValues <string>()
            {
                Column = new InArgument <string>("Col0")
            }, GetArgs(Initialize(), "Col0"));

            CollectionAssert.AreEqual(new[] { "A", "B", "C" }, result);
        }
        public void DefaultInt()
        {
            var result = WorkflowTester.Invoke(new ExtractDataColumnValues <int>()
            {
                Column = new InArgument <int>(1)
            }, GetArgs(Initialize(), 1));

            CollectionAssert.AreEqual(new[] { 1, 2, 3 }, result);
        }
        [DataRow("A11", "ftp://some.ftp.com", "FTP")] // without '/' on the end
        public void OLE2(string cell, string link, string label)
        {
            var args     = CreateInsertHyperlinkArgs(_ole2file, cell, link, label);
            var workflow = new InsertHyperlink {
                UseScope = false
            };
            var result = WorkflowTester.Invoke(workflow, args);

            Assert.IsTrue(result);
        }
        public async Task Default()
        {
            var createFile       = CreateFileAfter(1);
            var result           = WorkflowTester.Run(new WaitDynamicFile(), GetArgs(IOSamples.GetTestPath("output"), null));
            var expectedFileName = await createFile.ConfigureAwait(false);

            var info = result.Get(p => p.Result) as FileInfo;

            Assert.AreEqual(Path.GetFullPath(expectedFileName), info.FullName);
        }
        public void InvalidArgs()
        {
            Assert.ThrowsException <InvalidWorkflowException>(() => WorkflowTester.CompileAndInvoke(new EnumerateFiles()
            {
                Path          = new InArgument <int>(10),
                SearchPattern = new InArgument <bool>(true)
            }));

            Assert.ThrowsException <ArgumentException>(() => WorkflowTester.CompileAndInvoke(new EnumerateFiles()));
        }
Esempio n. 8
0
        public void Default(string alg)
        {
            CodeActivity <IEncryption> handler = null;

            switch (alg)
            {
            case nameof(AesAlgorithmEncryption):
                handler = new AesAlgorithmEncryption();
                break;

            case nameof(DESAlgorithmEncryption):
                handler = new DESAlgorithmEncryption();
                break;

            case nameof(RC2AlgorithmEncryption):
                handler = new RC2AlgorithmEncryption();
                break;

            case nameof(RijndaelAlgorithmEncryption):
                handler = new RijndaelAlgorithmEncryption();
                break;

            case nameof(TripleDESAlgorithmEncryption):
                handler = new TripleDESAlgorithmEncryption();
                break;

#if NET5_0
            case nameof(AesGcmAlgorithmEncryption):
                handler = new AesGcmAlgorithmEncryption();
                break;
#endif
            }

            var text         = Guid.NewGuid().ToString();
            var secureString = new NetworkCredential("", CryptoKey).SecurePassword;

            var activity = new TextEncryption()
            {
                Algorithm = new ActivityFunc <IEncryption>()
                {
                    Handler = handler
                },
                Key = new InArgument <SecureString>(_ => secureString)
            };

            var encrypted = WorkflowTester.CompileAndInvoke(activity, GetArgs(text));
            Assert.IsNotNull(encrypted);
            Assert.AreNotEqual(text, encrypted);

            activity.Action = Core.Enums.CryptoActions.Decrypt;
            var decrypted = WorkflowTester.CompileAndInvoke(activity, GetArgs(encrypted));
            Assert.IsNotNull(decrypted);
            Assert.AreNotEqual(encrypted, decrypted);
            Assert.AreEqual(text, decrypted);
        }
Esempio n. 9
0
        public void Default(DataRowEvaluationMode valuesMode, int expectedCount)
        {
            var dt = Initialize();

            var result = WorkflowTester.Invoke(new RemoveEmptyRows()
            {
                Mode = valuesMode
            }, GetArgs(dt));

            Assert.AreEqual(expectedCount, result.Rows.Count);
        }
        public void OpenXML(int expectedResult, string cellRange)
        {
            InsertHyperlinks(_openXmlFile);
            var args     = CreateRemoveHyperlinksArgs(_openXmlFile, cellRange);
            var workflow = new RemoveHyperlinks {
                UseScope = false
            };
            var result = WorkflowTester.Invoke(workflow, args);

            Assert.AreEqual(expectedResult, result);
        }
Esempio n. 11
0
        public void EmptyColumnName(string emptyColumnName)
        {
            var dt = DataTableHelper.CreateDataTable <string>(2, new[] {
                new string[] { "A", "B" }
            });

            Assert.ThrowsException <InvalidWorkflowException>(() => WorkflowTester.Run(new PromoteHeaders
            {
                EmptyColumnName = emptyColumnName,
            }, GetArgs(dt, null)));
        }
Esempio n. 12
0
        public void Default(string sampleFile, int expectedFilesCount, int expectedFoldersCount)
        {
            var extractTo = IOSamples.GetTestPath("unzip");

            WorkflowTester.Run(new Unzip(), GetArgs(IOSamples.GetTestPath(sampleFile), extractTo));
            var files   = Directory.GetFiles(extractTo, "*", SearchOption.AllDirectories);
            var folders = Directory.GetDirectories(extractTo, "*", SearchOption.AllDirectories);

            Assert.AreEqual(expectedFilesCount, files.Length);
            Assert.AreEqual(expectedFoldersCount, folders.Length);
        }
        public void OLE2(string file)
        {
            var path = IOSamples.GetTestPath(file);
            var args = new Dictionary <string, object>
            {
                { nameof(GetSheetNames.WorkbookPath), path }
            };

            var result = WorkflowTester.Invoke(new GetSheetNames(), args);

            CollectionAssert.AreEqual(new[] { "Sheet1", "Sheet2", "Sheet3", "Sheet4" }, result);
        }
        public void InvalidColumnReference()
        {
            Assert.ThrowsException <ArgumentException>(() => WorkflowTester.Invoke(new ExtractDataColumnValues <int>
            {
                Column = new InArgument <string>("InvalidColName")
            }, GetArgs(Initialize(), 1)));

            Assert.ThrowsException <ArgumentException>(() => WorkflowTester.Invoke(new ExtractDataColumnValues <int>
            {
                Column = new InArgument <int>(3)
            }, GetArgs(Initialize(), 1)));
        }
        public async Task SearchPattern()
        {
            _ = CreateFileAfter(1, ".json");
            _ = CreateFileAfter(2, ".yml");
            var createFile       = CreateFileAfter(3, ".txt");
            var result           = WorkflowTester.Run(new WaitDynamicFile(), GetArgs(IOSamples.GetTestPath("output"), "*.txt"));
            var expectedFileName = await createFile.ConfigureAwait(false);

            var info = result.Get(p => p.Result) as FileInfo;

            Assert.AreEqual(Path.GetFullPath(expectedFileName), info.FullName);
        }
Esempio n. 16
0
        public void Default()
        {
            var result = WorkflowTester.Invoke(new TransposeData(), GetArgs(Initialize()));

            Assert.AreEqual("Col1", result.Columns[0].ColumnName);
            Assert.AreEqual("Col2", result.Columns[1].ColumnName);
            Assert.AreEqual("Col3", result.Columns[2].ColumnName);
            Assert.AreEqual("Col4", result.Columns[3].ColumnName);
            CollectionAssert.AreEqual(new[] { "Product", "A", "B", "C" }, result.Rows[0].ItemArray);
            CollectionAssert.AreEqual(new object[] { "Quantity", "1", "2", "3" }, result.Rows[1].ItemArray);
            CollectionAssert.AreEqual(new[] { "Color", "Red", "Green", "Blue" }, result.Rows[2].ItemArray);
        }
        [DataRow(1, 30000)] // clamps 20000
        public async Task Intervals(int secondsToCreateFile, int interval)
        {
            var createFile = CreateFileAfter(secondsToCreateFile, ".txt");
            var result     = WorkflowTester.Run(new WaitDynamicFile
            {
                Interval = interval
            }, GetArgs(IOSamples.GetTestPath("output"), "*.txt"));
            var expectedFileName = await createFile.ConfigureAwait(false);

            var info = result.Get(p => p.Result) as FileInfo;

            Assert.AreEqual(Path.GetFullPath(expectedFileName), info.FullName);
        }
Esempio n. 18
0
        public void EmptyColumNames(string emptyColName)
        {
            var dt = DataTableHelper.CreateDataTable <string>(1, new[] {
                new string[] { "" }
            });

            var result = WorkflowTester.Run(new PromoteHeaders(), GetArgs(dt, emptyColName));

            var outDt = (DataTable)result.Get(p => p.Result);

            Assert.AreEqual(0, outDt.Rows.Count);
            Assert.AreEqual(emptyColName, outDt.Columns[0].ColumnName);
        }
Esempio n. 19
0
        public void Custom(string cols, ConditionOperator op, int expectedCount)
        {
            var dt     = Initialize();
            var values = cols.Split(',').Select(int.Parse).ToArray();
            var result = WorkflowTester.CompileAndInvoke(new RemoveEmptyRows
            {
                Columns  = new InArgument <int[]>(_ => values),
                Mode     = DataRowEvaluationMode.Custom,
                Operator = op,
            }, GetArgs(dt));

            Assert.AreEqual(expectedCount, result.Rows.Count);
        }
Esempio n. 20
0
        public void Default(string fileName, int files, int folders)
        {
            int filesCount = 0;
            var result     = WorkflowTester.Run(new ZipEntriesCount
            {
                FilesCount = new System.Activities.OutArgument <int>(_ => filesCount)
            }, GetArgs(IOSamples.GetSamplePath(fileName)));

            Assert.AreEqual(files, filesCount);
            Assert.AreEqual(files, result.Get(p => p.FilesCount));
            Assert.AreEqual(folders, result.Get(p => p.FoldersCount));
            Assert.AreEqual(files + folders, result.Get(p => p.EntriesCount));
        }
        public async Task WaitForExistAndInterval(int interval)
        {
            var createFile = CreateFileAfter(3, ".json");
            var result     = WorkflowTester.Run(new WaitFile
            {
                WaitForExist = true,
                Interval     = interval,
            }, GetArgs(IOSamples.GetTestPath("output/sample.json")));
            var expectedFileName = await createFile.ConfigureAwait(false);

            var info = result.Get(p => p.Result) as FileInfo;

            Assert.AreEqual("sample.json", info.Name);
        }
        public void Default(string searchPattern, SearchOption option)
        {
            var path = IOSamples.GetTestPath("output");

            var enumFiles = Directory.EnumerateFiles(path, searchPattern ?? "*", option);
            var result    = WorkflowTester.CompileAndInvoke(new EnumerateFiles()
            {
                Path          = new InArgument <string>(path),
                SearchPattern = new InArgument <string>(searchPattern),
                SearchOption  = option
            });

            CollectionAssert.AreEqual(enumFiles.ToList(), result.ToList());
        }
        public void Default()
        {
            var tester    = new ContainerTester();
            var container = new Container();

            container.Activities.Add(tester.PlusOne());
            container.Activities.Add(tester.PlusOne());
            container.Activities.Add(new Exit());
            container.Activities.Add(tester.PlusOne());

            tester.SetContainer(container);

            var result = WorkflowTester.Invoke(tester);

            Assert.AreEqual(2, result);
        }
        public void LastWriteTime(bool deleteEmptyFolders, int minutesToAdd, int filesDeleted, int foldersDeleted)
        {
            ChangeLastWriteTime();

            var folder = IOSamples.GetTestPath();
            var output = WorkflowTester.CompileAndRun(new CleanUpFolder
            {
                DeleteEmptyFolders = deleteEmptyFolders
            }, GetArgs(folder, DateTime.Now.AddMinutes(minutesToAdd)));

            var result = (CleanUpFolderResult)output.Get(p => p.Result);

            Assert.AreEqual(filesDeleted, result.FilesDeleted);
            Assert.AreEqual(foldersDeleted, result.FoldersDeleted);
            Assert.AreEqual(filesDeleted + foldersDeleted, result.TotalDeleted);
        }
Esempio n. 25
0
        public void Merge(string name)
        {
            var args = new Dictionary <string, object> {
                { "Source", _config2 },
                { "Destination", _config },
                { "SectionName", name }
            };

            var result = WorkflowTester.Run(new MergeConfig
            {
                Override = true
            }, args);

            Assert.IsNotNull(_config);
            Assert.AreSame(_config, (ConfigSection)result.Get(p => p.Destination));
        }
Esempio n. 26
0
        public void Default()
        {
            var dt = DataTableHelper.CreateDataTable <object>(7);

            WorkflowTester.CompileAndRun(new RemoveDataColumns
            {
                Columns = new InArgument <int[]>(_ => new int[] { 1, 3 })
            }, GetArgs(dt));

            // 0,1,2,3,4,5,6
            // 0,1,2,4,5,6   (index 3 removed)
            // 0,2,4,5,6     (index 1 removed)

            Assert.AreEqual(dt.Columns.Count, 5);
            Assert.AreEqual(dt.Columns[1].ColumnName, "Col2");
            Assert.AreEqual(dt.Columns[2].ColumnName, "Col4");
        }
        public void Condition(bool condition, int expected)
        {
            var tester    = new ContainerTester();
            var container = new Container();

            container.Activities.Add(tester.PlusOne());
            container.Activities.Add(new Exit {
                Condition = new InArgument <bool>(condition)
            });
            container.Activities.Add(tester.PlusOne());

            tester.SetContainer(container);

            var result = WorkflowTester.Invoke(tester);

            Assert.AreEqual(expected, result);
        }
Esempio n. 28
0
        public void Default()
        {
            var dt = DataTableHelper.CreateDataTable <string>(3, new[] {
                new string[] { "A", "B", "C" },
                new string[] { "Row1", "Row1", "Row1" },
                new string[] { "Row2", "Row2", "Row2" },
            });

            var result = WorkflowTester.Run(new PromoteHeaders(), GetArgs(dt, null));
            var outDt  = (DataTable)result.Get(p => p.Result);

            Assert.AreEqual(2, outDt.Rows.Count);

            Assert.AreEqual("A", outDt.Columns[0].ColumnName);
            Assert.AreEqual("B", outDt.Columns[1].ColumnName);
            Assert.AreEqual("C", outDt.Columns[2].ColumnName);
        }
        public void MultiplePathsAndPatterns()
        {
            var path1 = IOSamples.GetTestPath("output");
            var path2 = IOSamples.GetTestPath("output/inner3/deeper");

            var result = WorkflowTester.CompileAndInvoke(new EnumerateFiles()
            {
                Path          = new InArgument <string[]>(_ => new[] { path1, path2 }),
                SearchPattern = new InArgument <string[]>(_ => new[] { "*.json", "*.txt" }),
                SearchOption  = SearchOption.TopDirectoryOnly
            });

            var path1Res = Directory.EnumerateFiles(path1, "*.*", SearchOption.TopDirectoryOnly).Where(path => Path.GetExtension(path) != ".yml");
            var path2Res = Directory.EnumerateFiles(path2, "*.json", SearchOption.TopDirectoryOnly);

            CollectionAssert.AreEqual(path1Res.Concat(path2Res).ToArray(), result.ToArray());
        }
        public void OLE2(int expectedRemovedLinks, string cellRange)
        {
            InsertHyperlinks(_ole2file);
            var args     = CreateRemoveHyperlinksArgs(_ole2file, cellRange);
            var workflow = new RemoveHyperlinks {
                UseScope = false
            };
            var result = WorkflowTester.Invoke(workflow, args);

            Assert.AreEqual(expectedRemovedLinks, result);
            using (var adapter = new OLE2WorkbookAdapter())
            {
                adapter.Open(_ole2file);
                var links = adapter.GetHyperlinks("Sheet1", "");
                Assert.AreEqual(5 - expectedRemovedLinks, links.Count(), "remaining links differ");
            }
        }