From 11df9d79559c0af1bcd1bd28a2cf0bd91b2bc34f Mon Sep 17 00:00:00 2001 From: runebaas Date: Fri, 19 Jan 2018 00:59:21 +0100 Subject: [PATCH] Add Simple Unit Tests --- .gitlab-ci.yml | 6 +++ Geekbot.net.sln | 6 +++ Geekbot.net/Geekbot.net.csproj | 1 + Geekbot.net/Lib/EmojiConverter.cs | 14 +++++- Tests/Lib/EmojiConverter.test.cs | 75 +++++++++++++++++++++++++++++++ Tests/Tests.csproj | 16 +++++++ 6 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 Tests/Lib/EmojiConverter.test.cs create mode 100644 Tests/Tests.csproj diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4be995d..3928542 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,12 +10,18 @@ before_script: build: stage: build image: microsoft/dotnet:2.0.3-sdk-stretch + variables: + NUGET_PACKAGES: "${CI_PROJECT_DIR}/.nugetcache" + cache: + paths: + - .nugetcache artifacts: expire_in: 1h paths: - Geekbot.net/Binaries/ script: - dotnet restore + - dotnet test Tests - dotnet publish --configuration Release -o Binaries ./ deploy: diff --git a/Geekbot.net.sln b/Geekbot.net.sln index 990eb42..5011ad4 100644 --- a/Geekbot.net.sln +++ b/Geekbot.net.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 12.0.0.0 MinimumVisualStudioVersion = 10.0.0.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Geekbot.net", "Geekbot.net/Geekbot.net.csproj", "{FDCB3D92-E7B5-47BB-A9B5-CFAEFA57CDB4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{4CAF5F02-EFFE-4FDA-BD44-EEADDBA9600E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {FDCB3D92-E7B5-47BB-A9B5-CFAEFA57CDB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {FDCB3D92-E7B5-47BB-A9B5-CFAEFA57CDB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {FDCB3D92-E7B5-47BB-A9B5-CFAEFA57CDB4}.Release|Any CPU.Build.0 = Release|Any CPU + {4CAF5F02-EFFE-4FDA-BD44-EEADDBA9600E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CAF5F02-EFFE-4FDA-BD44-EEADDBA9600E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CAF5F02-EFFE-4FDA-BD44-EEADDBA9600E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CAF5F02-EFFE-4FDA-BD44-EEADDBA9600E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Geekbot.net/Geekbot.net.csproj b/Geekbot.net/Geekbot.net.csproj index 6fcd62d..38e7f94 100755 --- a/Geekbot.net/Geekbot.net.csproj +++ b/Geekbot.net/Geekbot.net.csproj @@ -8,6 +8,7 @@ Pizza and Coffee Studios A Discord bot https://github.com/pizzaandcoffee/Geekbot.net + NU1701 diff --git a/Geekbot.net/Lib/EmojiConverter.cs b/Geekbot.net/Lib/EmojiConverter.cs index 4cf7a23..60e75f4 100644 --- a/Geekbot.net/Lib/EmojiConverter.cs +++ b/Geekbot.net/Lib/EmojiConverter.cs @@ -11,7 +11,19 @@ namespace Geekbot.net.Lib { return "🔟"; } - var emojiMap = new string[] {"0⃣", "1⃣", "2⃣", "3⃣", "4⃣", "5⃣", "6⃣", "7⃣", "8⃣", "9⃣"}; + var emojiMap = new string[] + { + ":zero:", + ":one:", + ":two:", + ":three:", + ":four:", + ":five:", + ":six:", + ":seven:", + ":eight:", + ":nine:", + }; var numbers = number.ToString().ToCharArray(); var returnString = new StringBuilder(); foreach (var n in numbers) diff --git a/Tests/Lib/EmojiConverter.test.cs b/Tests/Lib/EmojiConverter.test.cs new file mode 100644 index 0000000..ca4ecbc --- /dev/null +++ b/Tests/Lib/EmojiConverter.test.cs @@ -0,0 +1,75 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Geekbot.net.Lib; +using Xunit; + +namespace Tests.Lib +{ + public class EmojiConverter_test + { + 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 async Task 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 async Task 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/Tests.csproj b/Tests/Tests.csproj new file mode 100644 index 0000000..c838db0 --- /dev/null +++ b/Tests/Tests.csproj @@ -0,0 +1,16 @@ + + + netcoreapp2.0 + false + NU1701 + + + + + + + + + + + \ No newline at end of file