Convert round-trip test to a theory

This commit is contained in:
Alexander Luzgarev 2018-11-07 10:27:54 +01:00
parent 4a15e9dd72
commit 40d1d55cbd

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Xunit;
namespace Parser.Tests
@ -42,7 +43,9 @@ namespace Parser.Tests
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 window = new TextWindowWithNull(text, fileName);
@ -52,30 +55,38 @@ namespace Parser.Tests
Assert.Equal(text, actual);
}
private static void ProcessDirectory(string directory)
public static IEnumerable<object[]> FilesData()
{
var files = Directory.GetFiles(directory, "*.m");
foreach (var file in files)
return Files().Select(fileName => new object[] { fileName });
}
public static IEnumerable<string> Files()
{
var relativePath = Path.GetRelativePath(BaseDirectory, file);
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, fileName);
if (SkipFiles.Contains(relativePath))
{
continue;
}
ProcessFile(file);
yield return fileName;
}
var subDirectories = Directory.GetDirectories(directory);
var subDirectories = Directory.GetDirectories(path);
foreach (var subDirectory in subDirectories)
{
ProcessDirectory(subDirectory);
}
}
[Fact]
public void TestEverything()
foreach (var fileName in Files(subDirectory))
{
ProcessDirectory(BaseDirectory);
yield return fileName;
}
}
}
}
}