diff --git a/Tests/Lib/Converters/EmojiConverter.test.cs b/Tests/Lib/Converters/EmojiConverter.test.cs new file mode 100644 index 0000000..ad37824 --- /dev/null +++ b/Tests/Lib/Converters/EmojiConverter.test.cs @@ -0,0 +1,94 @@ +using Geekbot.net.Lib.Converters; +using Xunit; + +namespace Tests.Lib.Converters +{ + public class EmojiConverterTest + { + public class NumberToEmojiTestDto + { + public int Number { get; set; } + public string Expected { get; set; } + } + + public static TestData NumberToEmojiTestData => + new TestData + { + { + "2", + new NumberToEmojiTestDto + { + Number = 2, + Expected = ":two:" + } + }, + { + "10", + new NumberToEmojiTestDto + { + Number = 10, + Expected = "🔟" + } + }, + { + "15", + new NumberToEmojiTestDto + { + Number = 15, + Expected = ":one::five:" + } + }, + { + "null", + new NumberToEmojiTestDto + { + Number = 0, + Expected = ":zero:" + } + } + }; + + [Theory, MemberData(nameof(NumberToEmojiTestData))] + public void NumberToEmoji(string testName, NumberToEmojiTestDto testData) + { + var emojiConverter = new EmojiConverter(); + var result = emojiConverter.NumberToEmoji(testData.Number); + Assert.Equal(result, testData.Expected); + } + + public class TextToEmojiTestDto + { + public string Text { get; set; } + public string Expected { get; set; } + } + + public static TestData TextToEmojiTestData => + new TestData + { + { + "Test", + new TextToEmojiTestDto + { + Text = "test", + Expected = ":regional_indicator_t: :regional_indicator_e: :regional_indicator_s: :regional_indicator_t: " + } + }, + { + "Best3+?", + new TextToEmojiTestDto + { + Text = "Best3+?", + Expected = ":b: :regional_indicator_e: :regional_indicator_s: :regional_indicator_t: :three: :heavy_plus_sign: :question: " + } + } + }; + + [Theory, MemberData(nameof(TextToEmojiTestData))] + public void TextToEmoji(string testName, TextToEmojiTestDto testData) + { + var emojiConverter = new EmojiConverter(); + var result = emojiConverter.TextToEmoji(testData.Text); + Assert.Equal(result, testData.Expected); + } + } +} \ No newline at end of file diff --git a/Tests/Lib/EmojiConverter.test.cs b/Tests/Lib/EmojiConverter.test.cs deleted file mode 100644 index 170d521..0000000 --- a/Tests/Lib/EmojiConverter.test.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System.Collections.Generic; -using Geekbot.net.Lib.Converters; -using Xunit; - -namespace Tests.Lib -{ - public class EmojiConverterTest - { - public static IEnumerable NumberToEmojiTestData - { - get - { - yield return new object[] - { - 2, - ":two:" - }; - - yield return new object[] - { - 10, - "🔟" - }; - - yield return new object[] - { - 15, - ":one::five:" - }; - - yield return new object[] - { - null, - ":zero:" - }; - } - } - - - [Theory, MemberData(nameof(NumberToEmojiTestData))] - public void NumberToEmoji(int number, string expectedResult) - { - var emojiConverter = new EmojiConverter(); - var result = emojiConverter.NumberToEmoji(number); - Assert.Equal(result, expectedResult); - } - - public static IEnumerable TextToEmojiTestData - { - get - { - yield return new object[] - { - "test", - ":regional_indicator_t: :regional_indicator_e: :regional_indicator_s: :regional_indicator_t: " - }; - yield return new object[] - { - "Best3+?", - ":b: :regional_indicator_e: :regional_indicator_s: :regional_indicator_t: :three: :heavy_plus_sign: :question: " - }; - } - } - - - [Theory, MemberData(nameof(TextToEmojiTestData))] - public void TextToEmoji(string text, string expectedResult) - { - var emojiConverter = new EmojiConverter(); - var result = emojiConverter.TextToEmoji(text); - Assert.Equal(result, expectedResult); - } - } -} \ No newline at end of file diff --git a/Tests/Lib/LevelCalc.test.cs b/Tests/Lib/LevelCalc.test.cs deleted file mode 100644 index 5ac5fd3..0000000 --- a/Tests/Lib/LevelCalc.test.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System.Collections.Generic; -using Geekbot.net.Lib.Levels; -using Xunit; - -namespace Tests.Lib -{ - public class LevelCalcTest - { - public static IEnumerable LevelCalcTestData - { - get - { - yield return new object[] - { - 500, - 13 - }; - - yield return new object[] - { - 41659, - 55 - }; - - yield return new object[] - { - 0, - 1 - }; - - yield return new object[] - { - 4000000, - 101 - }; - } - } - - - [Theory, MemberData(nameof(LevelCalcTestData))] - public void GetLevel(int messages, int expectedResult) - { - var levelCalc = new LevelCalc(); - var result = levelCalc.GetLevel(messages); - Assert.Equal(result, expectedResult); - } - } -} \ No newline at end of file diff --git a/Tests/Lib/Levels/LevelCalc.test.cs b/Tests/Lib/Levels/LevelCalc.test.cs new file mode 100644 index 0000000..9b4b97c --- /dev/null +++ b/Tests/Lib/Levels/LevelCalc.test.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using Geekbot.net.Lib.Levels; +using Xunit; + +namespace Tests.Lib.Levels +{ + public class LevelCalcTest + { + public class LevelCalcTestDto + { + public int Messages { get; set; } + public int ExpectedLevel { get; set; } + } + + public static TestData LevelCalcTestData => + new TestData() + { + { + "500", + new LevelCalcTestDto + { + Messages = 500, + ExpectedLevel = 13 + } + }, + { + "41659", + new LevelCalcTestDto + { + Messages = 41659, + ExpectedLevel = 55 + } + }, + { + "0", + new LevelCalcTestDto + { + Messages = 0, + ExpectedLevel = 1 + } + }, + { + "4000000", + new LevelCalcTestDto + { + Messages = 4000000, + ExpectedLevel = 101 + } + } + }; + + [Theory, MemberData(nameof(LevelCalcTestData))] + public void GetLevel(string testName, LevelCalcTestDto testData) + { + var levelCalc = new LevelCalc(); + var result = levelCalc.GetLevel(testData.Messages); + Assert.Equal(result, testData.ExpectedLevel); + } + } +} \ No newline at end of file diff --git a/Tests/TestData.cs b/Tests/TestData.cs new file mode 100644 index 0000000..6c61f0b --- /dev/null +++ b/Tests/TestData.cs @@ -0,0 +1,21 @@ +using Xunit; + +namespace Tests +{ + /// + /// Represents a set of data for a theory. Data can be added to the data set using the collection initializer syntax. + /// + /// + public class TestData : TheoryData + { + /// + /// Adds a theory to the Test + /// + /// Name of the Test + /// Data used in the Test + public void Add(string testName, T testObject) + { + AddRow(testName, testObject); + } + } +} \ No newline at end of file diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index 1e26252..108b314 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -3,6 +3,7 @@ netcoreapp2.2 false NU1701 + xUnit1026