Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CaseConverter/Converters/StringCaseConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ internal static IEnumerable<string> GetWords(string input)
return Enumerable.Empty<string>();
}

return Regex.Matches(input, @"[a-z\d]+|[A-Z\d]+(?![A-Za-z\d])|[A-Z\d]+(?=[A-Z])|[A-Z][a-z\d]*").GetValues();
return Regex.Matches(input, @"[\p{Ll}\d]+|[\p{Lu}\d]+(?![\p{L}\d])|[\p{Lu}\d]+(?=\p{Lu})|\p{Lu}[\p{Ll}\d]*").GetValues();
}

/// <summary>
Expand Down
6 changes: 6 additions & 0 deletions Test.CaseConverter/Converters/CamelCaseConverterTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ public void ConvertTest()
{
ConvertTest("hogeFugaPiyo", "hoge", "h");
}

[TestMethod]
public void ConvertTestTR()
{
ConvertTestTR("saçımŞekilÖnümdenÇekil", "şekil", "i");
}
}
}
50 changes: 39 additions & 11 deletions Test.CaseConverter/Converters/CaseConverterTestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,49 @@ namespace Test.CaseConverter.Converters
/// </summary>
protected void ConvertTest(string multiWords, string singleWord, string singleCharacter)
{
var converter = new TConverter();
Action<string, string[]> assert = (expected, source) =>
Assert.AreEqual(expected, converter.Convert(source));
using (new CultureInfoContext("en-US"))
{
var converter = new TConverter();
Action<string, string[]> assert = (expected, source) =>
Assert.AreEqual(expected, converter.Convert(source));

assert(multiWords, new[] { "hoge", "fuga", "piyo" });
assert(multiWords, new[] { "HOGE", "fuga", "piyo" });
assert(multiWords, new[] { "hoge", "fuga", "piyo" });
assert(multiWords, new[] { "HOGE", "fuga", "piyo" });

assert(singleWord, new[] { "hoge" });
assert(singleWord, new[] { "HOGE" });
assert(singleWord, new[] { "hoge" });
assert(singleWord, new[] { "HOGE" });

assert(singleCharacter, new[] { "h" });
assert(singleCharacter, new[] { "H" });
assert(singleCharacter, new[] { "h" });
assert(singleCharacter, new[] { "H" });

assert(string.Empty, null);
assert(string.Empty, new string[0]);
assert(string.Empty, null);
assert(string.Empty, new string[0]);
}
}

/// <summary>
/// <see cref="ICaseConverter.Convert"/>をテストします。
/// </summary>
protected void ConvertTestTR(string multiWords, string singleWord, string singleCharacter)
{
using (new CultureInfoContext("tr-TR"))
{
var converter = new TConverter();
Action<string, string[]> assert = (expected, source) =>
Assert.AreEqual(expected, converter.Convert(source));

assert(multiWords, new[] { "saçım", "şekil", "önümden", "çekil" });
assert(multiWords, new[] { "SAÇIM", "ŞEKİL", "ÖNÜMDEN", "çekil" });

assert(singleWord, new[] { "şekil" });
assert(singleWord, new[] { "ŞEKİL" });

assert(singleCharacter, new[] { "i" });
assert(singleCharacter, new[] { "İ" });

assert(string.Empty, null);
assert(string.Empty, new string[0]);
}
}
}
}
6 changes: 6 additions & 0 deletions Test.CaseConverter/Converters/KebabCaseConverterTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ public void ConvertTest()
{
ConvertTest("hoge-fuga-piyo", "hoge", "h");
}

[TestMethod]
public void ConvertTestTR()
{
ConvertTestTR("saçım-şekil-önümden-çekil", "şekil", "i");
}
}
}
6 changes: 6 additions & 0 deletions Test.CaseConverter/Converters/PascalCaseConverterTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ public void ConvertTest()
{
ConvertTest("HogeFugaPiyo", "Hoge", "H");
}

[TestMethod]
public void ConvertTestTR()
{
ConvertTestTR("SaçımŞekilÖnümdenÇekil", "Şekil", "İ");
}
}
}
6 changes: 6 additions & 0 deletions Test.CaseConverter/Converters/PascalSnakeCaseConverterTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ public void ConvertTest()
{
ConvertTest("Hoge_Fuga_Piyo", "Hoge", "H");
}

[TestMethod]
public void ConvertTestTR()
{
ConvertTestTR("Saçım_Şekil_Önümden_Çekil", "Şekil", "İ");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ public void ConvertTest()
{
ConvertTest("HOGE_FUGA_PIYO", "HOGE", "H");
}

[TestMethod]
public void ConvertTestTR()
{
ConvertTestTR("SAÇIM_ŞEKİL_ÖNÜMDEN_ÇEKİL", "ŞEKİL", "İ");
}
}
}
6 changes: 6 additions & 0 deletions Test.CaseConverter/Converters/SnakeCaseConverterTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ public void ConvertTest()
{
ConvertTest("hoge_fuga_piyo", "hoge", "h");
}

[TestMethod]
public void ConvertTestTR()
{
ConvertTestTR("saçım_şekil_önümden_çekil", "şekil", "i");
}
}
}
Loading