From 5d04191e680273f274efb2bc8d2481a361151cb5 Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Tue, 7 Jan 2025 20:03:15 -0500 Subject: [PATCH] Add basic test framework --- UnitTests/MSTestSettings.cs | 1 + UnitTests/Tests/Utils/RandomUtilTests.cs | 39 ++++++++++++++++++++++++ UnitTests/UnitTests.csproj | 23 ++++++++++++++ server-csharp.sln | 6 ++++ 4 files changed, 69 insertions(+) create mode 100644 UnitTests/MSTestSettings.cs create mode 100644 UnitTests/Tests/Utils/RandomUtilTests.cs create mode 100644 UnitTests/UnitTests.csproj diff --git a/UnitTests/MSTestSettings.cs b/UnitTests/MSTestSettings.cs new file mode 100644 index 00000000..8b7de71c --- /dev/null +++ b/UnitTests/MSTestSettings.cs @@ -0,0 +1 @@ +[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] \ No newline at end of file diff --git a/UnitTests/Tests/Utils/RandomUtilTests.cs b/UnitTests/Tests/Utils/RandomUtilTests.cs new file mode 100644 index 00000000..8d2c7d37 --- /dev/null +++ b/UnitTests/Tests/Utils/RandomUtilTests.cs @@ -0,0 +1,39 @@ +using Core.Utils; + +namespace UnitTests.Tests.Utils; + +[TestClass] +public sealed class RandomUtilTests +{ + private readonly RandomUtil _randomUtil = new(); + + [TestMethod] + public void GetIntTest() + { + // Run 100 test cases + for (var i = 0; i < 100; i++) + { + var result = _randomUtil.GetInt(0, 10); + + if (result < 0 || result > 10) + { + Assert.Fail("GetInt() out of range."); + } + } + } + + [TestMethod] + public void GetIntExTest() + { + // Run 100 test cases + for (var i = 0; i < 100; i++) + { + var result = _randomUtil.GetIntEx(10); + + if (result < 1 || result > 9) + { + Assert.Fail("GetIntEx() out of range."); + } + } + } +} \ No newline at end of file diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj new file mode 100644 index 00000000..42335228 --- /dev/null +++ b/UnitTests/UnitTests.csproj @@ -0,0 +1,23 @@ + + + + net9.0 + latest + enable + enable + + + + + + + + + + + + + + + + diff --git a/server-csharp.sln b/server-csharp.sln index 3c62d5a2..f248ddd5 100644 --- a/server-csharp.sln +++ b/server-csharp.sln @@ -4,6 +4,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csp EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core", "Core\Core.csproj", "{AC8643DC-8779-4B4A-BBDA-2D4CC466F765}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "UnitTests\UnitTests.csproj", "{6C0681F9-4013-4579-82DA-0A9297984FD3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -18,5 +20,9 @@ Global {AC8643DC-8779-4B4A-BBDA-2D4CC466F765}.Debug|Any CPU.Build.0 = Debug|Any CPU {AC8643DC-8779-4B4A-BBDA-2D4CC466F765}.Release|Any CPU.ActiveCfg = Release|Any CPU {AC8643DC-8779-4B4A-BBDA-2D4CC466F765}.Release|Any CPU.Build.0 = Release|Any CPU + {6C0681F9-4013-4579-82DA-0A9297984FD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C0681F9-4013-4579-82DA-0A9297984FD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C0681F9-4013-4579-82DA-0A9297984FD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C0681F9-4013-4579-82DA-0A9297984FD3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal