3 Commits 3889967e6f ... a772f3556d

Author SHA1 Message Date
  Piotr Czajkowski a772f3556d Cleaner 2 years ago
  Piotr Czajkowski ec189cd2df Added ProcessFolderAndFileTest 2 years ago
  Piotr Czajkowski 3bc7e1c433 A bit cleaner 2 years ago

+ 53 - 33
ProcessFilesTests/ProcessFilesTests.cs

@@ -1,37 +1,58 @@
 using System.Collections.Generic;
 using System.IO;
-using System.Linq;
 using Xunit;
 
 namespace ProcessFilesTests
 {
     public class ProcessFilesTests
     {
+        private readonly string testFolder = "./testFiles";
+        private readonly string testFile = "./testFiles/test1.txt";
+
+        private List<string> expectedInSubFolder = new List<string>
+        {
+            "test2.txt",
+            "test3.txt"
+        };
+
+        private string exptectedInFolder = "test1.txt";
+
         [Fact]
         public void ProcessFolderTest()
         {
-            const string expected = "test1.txt";
             var result = string.Empty;
-
             void Callback(string value)
             {
-               result = Path.GetFileName(value);
+                result = Path.GetFileName(value);
             }
 
-            var errors = ProcessFiles.ProcessFiles.Process(new [] {"./testFiles"}, "txt", Callback);
+            var errors = ProcessFiles.ProcessFiles.Process(new[] { testFolder }, "txt", Callback);
             Assert.Empty(errors);
+            Assert.Equal(exptectedInFolder, result);
+        }
+
+        private bool CheckResult(List<string> result, List<string> expected)
+        {
+            if (!result.Count.Equals(expected.Count))
+                return false;
+
+            foreach (var item in result)
+            {
+                if (!expected.Contains(item))
+                    return false;
+            }
 
-            Assert.Equal(expected, result);
+            return true;
         }
 
         [Fact]
         public void ProcessFolderRecursiveTest()
         {
-            var expected = new[]
+            var expected = new List<string>
             {
-                "test1.txt",
-                "test2.txt"
+                exptectedInFolder
             };
+            expected.AddRange(expectedInSubFolder);
 
             var result = new List<string>();
             void Callback(string value)
@@ -39,46 +60,49 @@ namespace ProcessFilesTests
                 result.Add(Path.GetFileName(value));
             }
 
-            var errors = ProcessFiles.ProcessFiles.Process(new[] { "./testFiles" }, "txt", Callback, true);
+            var errors = ProcessFiles.ProcessFiles.Process(new[] { testFolder }, "txt", Callback, true);
             Assert.Empty(errors);
+            Assert.True(CheckResult(result, expected));
+        }
 
-            bool CheckResult()
+        [Fact]
+        public void ProcessFolderAndFileTest()
+        {
+            var expected = new List<string>
             {
-                foreach (var item in result)
-                {
-                    if (!expected.Contains(item))
-                        return false;
-                }
+                exptectedInFolder
+            };
+            expected.AddRange(expectedInSubFolder);
 
-                return true;
+            var result = new List<string>();
+            void Callback(string value)
+            {
+                result.Add(Path.GetFileName(value));
             }
 
-            Assert.True(CheckResult());
+            var errors = ProcessFiles.ProcessFiles.Process(new[] { "./testFiles/subFolder", testFile }, "txt", Callback);
+            Assert.Empty(errors);
+            Assert.True(CheckResult(result, expected));
         }
 
         [Fact]
         public void ProcessFileTest()
         {
-            var expected = @"./testFiles/test1.txt";
             var result = string.Empty;
-
             void Callback(string value)
             {
-                result = value;
+                result = Path.GetFileName(value);
             }
 
-            var errors = ProcessFiles.ProcessFiles.Process(new[] { "./testFiles/test1.txt" }, "txt", Callback);
+            var errors = ProcessFiles.ProcessFiles.Process(new[] { testFile }, "txt", Callback);
             Assert.Empty(errors);
-
-            Assert.Equal(expected, result);
+            Assert.Equal(exptectedInFolder, result);
         }
 
         [Fact]
         public void ProcessFileNotExistTest()
         {
-            var expected = @"./testFiles/test1.txt";
             var result = string.Empty;
-
             void Callback(string value)
             {
                 result = value;
@@ -86,25 +110,21 @@ namespace ProcessFilesTests
 
             var errors = ProcessFiles.ProcessFiles.Process(new[] { "./testFiles/test.txt" }, "txt", Callback);
             Assert.NotEmpty(errors);
-
-            Assert.NotEqual(expected, result);
+            Assert.NotEqual(exptectedInFolder, result);
         }
 
         [Fact]
         public void ProcessFileNotMatchExtensionTest()
         {
-            var expected = @"./testFiles/test1.txt";
             var result = string.Empty;
-
             void Callback(string value)
             {
                 result = value;
             }
 
-            var errors = ProcessFiles.ProcessFiles.Process(new[] { "./testFiles/test1.txt" }, "abc", Callback);
+            var errors = ProcessFiles.ProcessFiles.Process(new[] { testFile }, "abc", Callback);
             Assert.NotEmpty(errors);
-
-            Assert.NotEqual(expected, result);
+            Assert.Empty(result);
         }
     }
 }

+ 5 - 0
ProcessFilesTests/ProcessFilesTests.csproj

@@ -31,4 +31,9 @@
     <ProjectReference Include="..\ProcessFiles\ProcessFiles.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <None Update="testFiles\subFolder\test3.txt">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
 </Project>

+ 0 - 0
ProcessFilesTests/testFiles/subFolder/test3.txt