|
@@ -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);
|
|
|
}
|
|
|
}
|
|
|
}
|