tests: add unit tests for ResumeData and Discord event classes

This commit is contained in:
Stevan Freeborn
2025-05-22 09:21:21 -05:00
parent 02cff46d11
commit 58dc5896ca
6 changed files with 96 additions and 12 deletions
@@ -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();
}
}
@@ -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);
}
}
@@ -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);
}
}
@@ -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,
});
}
}
@@ -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; }
}
@@ -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; }
}