From 58dc5896caf7de55657af51a51830121dbe86dc4 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Thu, 22 May 2025 09:21:21 -0500 Subject: [PATCH] tests: add unit tests for ResumeData and Discord event classes --- .../Unit/InvalidSessionDiscordEventTests.cs | 15 ++++++++++ .../Unit/MessageCreateDiscordEventTests.cs | 30 +++++++++++++++++++ .../Unit/ResumeDataTests.cs | 14 +++++++++ .../Unit/ResumeDiscordEventTests.cs | 24 +++++++++++++++ .../Discord/Gateway/Events/Data/ResumeData.cs | 13 ++++++++ .../Gateway/Events/ResumeDiscordEvent.cs | 12 -------- 6 files changed, 96 insertions(+), 12 deletions(-) create mode 100644 src/StevesBot.Worker.Tests/Unit/InvalidSessionDiscordEventTests.cs create mode 100644 src/StevesBot.Worker.Tests/Unit/MessageCreateDiscordEventTests.cs create mode 100644 src/StevesBot.Worker.Tests/Unit/ResumeDataTests.cs create mode 100644 src/StevesBot.Worker.Tests/Unit/ResumeDiscordEventTests.cs create mode 100644 src/StevesBot.Worker/Discord/Gateway/Events/Data/ResumeData.cs diff --git a/src/StevesBot.Worker.Tests/Unit/InvalidSessionDiscordEventTests.cs b/src/StevesBot.Worker.Tests/Unit/InvalidSessionDiscordEventTests.cs new file mode 100644 index 0000000..3dc4c22 --- /dev/null +++ b/src/StevesBot.Worker.Tests/Unit/InvalidSessionDiscordEventTests.cs @@ -0,0 +1,15 @@ +namespace StevesBot.Worker.Tests.Unit; + +public class InvalidSessionDiscordEventTests +{ + [Fact] + public void Constructor_WhenCalled_ItShouldReturnAnInstance() + { + var result = new InvalidSessionDiscordEvent(); + + result.OpCode.Should().Be(0); + result.Type.Should().BeNull(); + result.Sequence.Should().BeNull(); + result.Data.Should().BeFalse(); + } +} \ No newline at end of file diff --git a/src/StevesBot.Worker.Tests/Unit/MessageCreateDiscordEventTests.cs b/src/StevesBot.Worker.Tests/Unit/MessageCreateDiscordEventTests.cs new file mode 100644 index 0000000..cb1f005 --- /dev/null +++ b/src/StevesBot.Worker.Tests/Unit/MessageCreateDiscordEventTests.cs @@ -0,0 +1,30 @@ +namespace StevesBot.Worker.Tests.Unit; + +public class MessageCreateDiscordEventTests +{ + [Fact] + public void Constructor_WhenCalled_ItShouldReturnAnInstance() + { + var result = new MessageCreateDiscordEvent(); + + result.OpCode.Should().Be(0); + result.Type.Should().BeNull(); + result.Sequence.Should().BeNull(); + result.Data.Should().BeEquivalentTo(new DiscordMessage()); + } + + [Theory] + [InlineData(0, 0, true)] + [InlineData(1, 0, false)] + public void IsMessageType_WhenCalled_ItShouldReturnCorrectResult(int messageType, int givenType, bool expectedResult) + { + var e = new MessageCreateDiscordEvent() + { + Data = new() { Type = messageType } + }; + + var result = e.IsMessageType(givenType); + + result.Should().Be(expectedResult); + } +} \ No newline at end of file diff --git a/src/StevesBot.Worker.Tests/Unit/ResumeDataTests.cs b/src/StevesBot.Worker.Tests/Unit/ResumeDataTests.cs new file mode 100644 index 0000000..72e0ec8 --- /dev/null +++ b/src/StevesBot.Worker.Tests/Unit/ResumeDataTests.cs @@ -0,0 +1,14 @@ +namespace StevesBot.Worker.Tests.Unit; + +public class ResumeDataTests +{ + [Fact] + public void Constructor_WhenCalled_ItShouldReturnAnInstance() + { + var result = new ResumeData(); + + result.Token.Should().BeEmpty(); + result.SessionId.Should().BeEmpty(); + result.Sequence.Should().Be(0); + } +} \ No newline at end of file diff --git a/src/StevesBot.Worker.Tests/Unit/ResumeDiscordEventTests.cs b/src/StevesBot.Worker.Tests/Unit/ResumeDiscordEventTests.cs new file mode 100644 index 0000000..b59c06b --- /dev/null +++ b/src/StevesBot.Worker.Tests/Unit/ResumeDiscordEventTests.cs @@ -0,0 +1,24 @@ +namespace StevesBot.Worker.Tests.Unit; + +public class ResumeDiscordEventTests +{ + [Fact] + public void Constructor_WhenCalled_ItShouldReturnAnInstance() + { + var token = "test_token"; + var sessionId = "session_id"; + var sequence = 1; + + var result = new ResumeDiscordEvent(token, sessionId, sequence); + + result.OpCode.Should().Be(DiscordOpCodes.Resume); + result.Type.Should().BeNull(); + result.Sequence.Should().BeNull(); + result.Data.Should().BeEquivalentTo(new ResumeData() + { + Token = token, + SessionId = sessionId, + Sequence = sequence, + }); + } +} \ No newline at end of file diff --git a/src/StevesBot.Worker/Discord/Gateway/Events/Data/ResumeData.cs b/src/StevesBot.Worker/Discord/Gateway/Events/Data/ResumeData.cs new file mode 100644 index 0000000..10dbd76 --- /dev/null +++ b/src/StevesBot.Worker/Discord/Gateway/Events/Data/ResumeData.cs @@ -0,0 +1,13 @@ +namespace StevesBot.Worker.Discord.Gateway.Events.Data; + +internal sealed record ResumeData +{ + [JsonPropertyName("token")] + public string Token { get; init; } = string.Empty; + + [JsonPropertyName("session_id")] + public string SessionId { get; init; } = string.Empty; + + [JsonPropertyName("seq")] + public int Sequence { get; init; } +} \ No newline at end of file diff --git a/src/StevesBot.Worker/Discord/Gateway/Events/ResumeDiscordEvent.cs b/src/StevesBot.Worker/Discord/Gateway/Events/ResumeDiscordEvent.cs index 2c23dc8..9db49e9 100644 --- a/src/StevesBot.Worker/Discord/Gateway/Events/ResumeDiscordEvent.cs +++ b/src/StevesBot.Worker/Discord/Gateway/Events/ResumeDiscordEvent.cs @@ -20,15 +20,3 @@ internal sealed record ResumeDiscordEvent : DiscordEvent }; } } - -internal sealed record ResumeData -{ - [JsonPropertyName("token")] - public string Token { get; init; } = string.Empty; - - [JsonPropertyName("session_id")] - public string SessionId { get; init; } = string.Empty; - - [JsonPropertyName("seq")] - public int Sequence { get; init; } -} \ No newline at end of file