From 7cbbd21d71927f87c5363a54457f44574a05a7b2 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Mon, 12 May 2025 14:50:32 -0500 Subject: [PATCH] tests: add tests --- .../Integration/DiscordEventConverterTests.cs | 29 +++++++++++++++++++ .../Unit/HeartbeatDiscordEventTests.cs | 17 +++++++++++ .../Unit/WebSocketTests.cs | 15 ++++++++++ .../Discord/Events/HelloDiscordEvent.cs | 2 +- 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/StevesBot.Worker.Tests/Integration/DiscordEventConverterTests.cs create mode 100644 src/StevesBot.Worker.Tests/Unit/WebSocketTests.cs diff --git a/src/StevesBot.Worker.Tests/Integration/DiscordEventConverterTests.cs b/src/StevesBot.Worker.Tests/Integration/DiscordEventConverterTests.cs new file mode 100644 index 0000000..2939c28 --- /dev/null +++ b/src/StevesBot.Worker.Tests/Integration/DiscordEventConverterTests.cs @@ -0,0 +1,29 @@ +namespace StevesBot.Worker.Tests.Integration; + +public class DiscordEventConverterTests +{ + private readonly JsonSerializerOptions _jsonSerializerOptions = new() + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + Converters = + { + new DiscordEventConverter() + } + }; + + [Fact] + public void Deserialize_WhenCalledWithUnknownOpCode_ItShouldReturnADiscordEvent() + { + + } + + private string Serialize(object obj) + { + return JsonSerializer.Serialize(obj, _jsonSerializerOptions); + } + + private T? Deserialize(string json) + { + return JsonSerializer.Deserialize(json, _jsonSerializerOptions); + } +} \ No newline at end of file diff --git a/src/StevesBot.Worker.Tests/Unit/HeartbeatDiscordEventTests.cs b/src/StevesBot.Worker.Tests/Unit/HeartbeatDiscordEventTests.cs index e69de29..e5956f8 100644 --- a/src/StevesBot.Worker.Tests/Unit/HeartbeatDiscordEventTests.cs +++ b/src/StevesBot.Worker.Tests/Unit/HeartbeatDiscordEventTests.cs @@ -0,0 +1,17 @@ +namespace StevesBot.Worker.Tests.Unit; + +public class HeartbeatDiscordEventTests +{ + [Theory] + [InlineData(null)] + [InlineData(1)] + public void Constructor_WhenCalled_ItShouldInitializeProperties(int? sequence) + { + var heartbeatEvent = new HeartbeatDiscordEvent(sequence); + + heartbeatEvent.OpCode.Should().Be(1); + heartbeatEvent.Sequence.Should().Be(sequence); + heartbeatEvent.Type.Should().BeNull(); + heartbeatEvent.Data.Should().BeNull(); + } +} \ No newline at end of file diff --git a/src/StevesBot.Worker.Tests/Unit/WebSocketTests.cs b/src/StevesBot.Worker.Tests/Unit/WebSocketTests.cs new file mode 100644 index 0000000..785da42 --- /dev/null +++ b/src/StevesBot.Worker.Tests/Unit/WebSocketTests.cs @@ -0,0 +1,15 @@ +using WebSocket = StevesBot.Worker.WebSockets.WebSocket; + +namespace StevesBot.Worker.Tests.Unit; + +public class WebSocketTests +{ + [Fact] + public void State_WhenCalled_ItShouldReturnWebSocketState() + { + using var webSocket = new WebSocket(); + var state = webSocket.State; + + state.Should().Be(WebSocketState.None); + } +} \ No newline at end of file diff --git a/src/StevesBot.Worker/Discord/Events/HelloDiscordEvent.cs b/src/StevesBot.Worker/Discord/Events/HelloDiscordEvent.cs index 732cf78..3745b91 100644 --- a/src/StevesBot.Worker/Discord/Events/HelloDiscordEvent.cs +++ b/src/StevesBot.Worker/Discord/Events/HelloDiscordEvent.cs @@ -3,7 +3,7 @@ namespace StevesBot.Worker.Discord.Events; internal sealed record HelloDiscordEvent : DiscordEvent { [JsonPropertyName("d")] - public new HelloData? Data { get; init; } + public new HelloData Data { get; init; } = new HelloData(); } internal sealed record HelloData