diff --git a/src/NPetrovich.Tests/Fixtures/CaseInflectionFixture.cs b/src/NPetrovich.Tests/Fixtures/CaseInflectionFixture.cs index cf23a1a..7e2964a 100644 --- a/src/NPetrovich.Tests/Fixtures/CaseInflectionFixture.cs +++ b/src/NPetrovich.Tests/Fixtures/CaseInflectionFixture.cs @@ -1,6 +1,7 @@ using NPetrovich.Inflection; using NPetrovich.Rules; using NPetrovich.Rules.Loader.Yaml; +using NPetrovich.Tests.TestDataProviders; using NUnit.Framework; using System; using System.Collections; @@ -44,60 +45,5 @@ public void Should_inflect_middle_name_correctly(string middleName, Gender gende var actual = new CaseInflection(provider, gender).InflectMiddleNameTo(middleName, @case); Assert.AreEqual(expected, actual, string.Format("Gender: {0}, Case: {1}", gender, @case)); } - - public class InflectionTestCaseDataFactory - { - public static IEnumerable LastNamesInflectionData - { - get - { - using (var reader = new StreamReader(Path.Combine("Data", "LastNames.csv"))) - { - foreach (var p in ReadCaseData(reader)) yield return p; - } - } - } - - public static IEnumerable FirstNamesInflectionData - { - get - { - using (var reader = new StreamReader(Path.Combine("Data", "FirstNames.csv"))) - { - foreach (var p in ReadCaseData(reader)) yield return p; - } - } - } - - public static IEnumerable MiddleNamesInflectionData - { - get - { - using (var reader = new StreamReader(Path.Combine("Data", "MiddleNames.csv"))) - { - foreach (var p in ReadCaseData(reader)) yield return p; - } - } - } - - private static IEnumerable ReadCaseData(StreamReader reader) - { - string line; - while ((line = reader.ReadLine()) != null) - { - if (string.IsNullOrWhiteSpace(line)) - continue; - - var chunks = line.Split(',').Select(s => s.Trim()).ToList(); - - var gender = (Gender)Enum.Parse(typeof(Gender), chunks[1]); - var @case = (Case)Enum.Parse(typeof(Case), chunks[2]); - - yield return new object[] { chunks[0], gender, @case, chunks[3] }; - } - } - - } - } } diff --git a/src/NPetrovich.Tests/NPetrovich.Tests.csproj b/src/NPetrovich.Tests/NPetrovich.Tests.csproj index baf8674..d78c1ec 100644 --- a/src/NPetrovich.Tests/NPetrovich.Tests.csproj +++ b/src/NPetrovich.Tests/NPetrovich.Tests.csproj @@ -53,6 +53,7 @@ + diff --git a/src/NPetrovich.Tests/TestDataProviders/InflectionTestCaseDataFactory.cs b/src/NPetrovich.Tests/TestDataProviders/InflectionTestCaseDataFactory.cs new file mode 100644 index 0000000..df59b17 --- /dev/null +++ b/src/NPetrovich.Tests/TestDataProviders/InflectionTestCaseDataFactory.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections; +using System.IO; +using System.Linq; + +namespace NPetrovich.Tests.TestDataProviders +{ + public class InflectionTestCaseDataFactory + { + public static IEnumerable LastNamesInflectionData + { + get + { + using (var reader = new StreamReader(Path.Combine("Data", "LastNames.csv"))) + { + foreach (var p in ReadCaseData(reader)) yield return p; + } + } + } + + public static IEnumerable FirstNamesInflectionData + { + get + { + using (var reader = new StreamReader(Path.Combine("Data", "FirstNames.csv"))) + { + foreach (var p in ReadCaseData(reader)) yield return p; + } + } + } + + public static IEnumerable MiddleNamesInflectionData + { + get + { + using (var reader = new StreamReader(Path.Combine("Data", "MiddleNames.csv"))) + { + foreach (var p in ReadCaseData(reader)) yield return p; + } + } + } + + private static IEnumerable ReadCaseData(StreamReader reader) + { + string line; + while ((line = reader.ReadLine()) != null) + { + if (string.IsNullOrWhiteSpace(line)) + continue; + + var chunks = line.Split(',').Select(s => s.Trim()).ToList(); + + var gender = (Gender)Enum.Parse(typeof(Gender), chunks[1]); + var @case = (Case)Enum.Parse(typeof(Case), chunks[2]); + + yield return new object[] { chunks[0], gender, @case, chunks[3] }; + } + } + + } +}