Skip to content

Commit

Permalink
Made tests cache sample documents
Browse files Browse the repository at this point in the history
  • Loading branch information
menees committed Oct 15, 2023
1 parent 9a3d4f4 commit 004c558
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 8 deletions.
3 changes: 1 addition & 2 deletions tests/Menees.Chords.Tests/DocumentTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,7 @@ public void ParseTest()
[TestMethod]
public void TypeOneCharAtATimeTest()
{
string samplesFolder = TestUtility.GetSampleFileName(string.Empty);
foreach (string textFile in Directory.EnumerateFiles(samplesFolder).Order())
foreach (string textFile in TestUtility.GetSampleFileNames())
{
Debug.WriteLine(textFile);
string text = File.ReadAllText(textFile);
Expand Down
12 changes: 12 additions & 0 deletions tests/Menees.Chords.Tests/TestUtility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,29 @@

public static class TestUtility
{
#region Private Data Members

private static readonly Lazy<List<Document>> SampleDocumentCache = new(
() => GetSampleFileNames().Select(fileName => Document.Load(fileName)).ToList());

#endregion

#region Public Properties

public static string SwingLowSweetChariotFileName { get; } = GetSampleFileName("Swing Low Sweet Chariot.cho");

public static IReadOnlyList<Document> SampleDocuments => SampleDocumentCache.Value;

#endregion

#region Public Methods

public static string GetSampleFileName(string fileName)
=> Path.Combine("Samples", fileName);

public static IEnumerable<string> GetSampleFileNames()
=> Directory.EnumerateFiles(GetSampleFileName(string.Empty)).Order();

public static Document LoadSwingLowSweetChariot()
=> Document.Load(SwingLowSweetChariotFileName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,19 @@ public void GroupGridEnvironmentTest()

internal static void TestSamples(string expectedFolder, Func<Document, ChordProTransformer> createTransformer)
{
string samplesFolder = TestUtility.GetSampleFileName(string.Empty);
foreach (string textFile in Directory.EnumerateFiles(samplesFolder).Order())
foreach (Document original in TestUtility.SampleDocuments)
{
Document original = Document.Load(textFile);
Test(original, createTransformer, out string text);

string fileName = original.FileName.ShouldNotBeNull();
string baseFolder = Path.GetDirectoryName(fileName) ?? string.Empty;
string expectedFileName = Path.Combine(
samplesFolder,
baseFolder,
expectedFolder,
Path.ChangeExtension(Path.GetFileName(textFile), ".cho"));
Path.ChangeExtension(Path.GetFileName(fileName), ".cho"));
string expectedText = File.Exists(expectedFileName)
? File.ReadAllText(expectedFileName)
: File.ReadAllText(textFile);
: File.ReadAllText(fileName);
text.ShouldBe(expectedText, StringCompareShould.IgnoreLineEndings);
}
}
Expand Down

0 comments on commit 004c558

Please sign in to comment.