Convert round-trip test to a theory
This commit is contained in:
parent
4a15e9dd72
commit
40d1d55cbd
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Parser.Tests
|
namespace Parser.Tests
|
||||||
@ -42,7 +43,9 @@ namespace Parser.Tests
|
|||||||
return new MParser(window);
|
return new MParser(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ProcessFile(string fileName)
|
[Theory]
|
||||||
|
[MemberData(nameof(FilesData))]
|
||||||
|
public void TestFile(string fileName)
|
||||||
{
|
{
|
||||||
var text = File.ReadAllText(fileName);
|
var text = File.ReadAllText(fileName);
|
||||||
var window = new TextWindowWithNull(text, fileName);
|
var window = new TextWindowWithNull(text, fileName);
|
||||||
@ -51,31 +54,39 @@ namespace Parser.Tests
|
|||||||
var actual = tree.Root.FullText;
|
var actual = tree.Root.FullText;
|
||||||
Assert.Equal(text, actual);
|
Assert.Equal(text, actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ProcessDirectory(string directory)
|
public static IEnumerable<object[]> FilesData()
|
||||||
{
|
{
|
||||||
var files = Directory.GetFiles(directory, "*.m");
|
return Files().Select(fileName => new object[] { fileName });
|
||||||
foreach (var file in files)
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<string> Files()
|
||||||
|
{
|
||||||
|
return Files(BaseDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<string> Files(string path)
|
||||||
|
{
|
||||||
|
var fileNames = Directory.GetFiles(path, "*.m");
|
||||||
|
foreach (var fileName in fileNames)
|
||||||
{
|
{
|
||||||
var relativePath = Path.GetRelativePath(BaseDirectory, file);
|
var relativePath = Path.GetRelativePath(BaseDirectory, fileName);
|
||||||
if (SkipFiles.Contains(relativePath))
|
if (SkipFiles.Contains(relativePath))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ProcessFile(file);
|
|
||||||
|
yield return fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
var subDirectories = Directory.GetDirectories(directory);
|
var subDirectories = Directory.GetDirectories(path);
|
||||||
foreach (var subDirectory in subDirectories)
|
foreach (var subDirectory in subDirectories)
|
||||||
{
|
{
|
||||||
ProcessDirectory(subDirectory);
|
foreach (var fileName in Files(subDirectory))
|
||||||
|
{
|
||||||
|
yield return fileName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TestEverything()
|
|
||||||
{
|
|
||||||
ProcessDirectory(BaseDirectory);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user