chore: port over events and update converter to handle them

This commit is contained in:
Stevan Freeborn
2025-05-08 23:24:20 -05:00
parent 9f35394528
commit 7f6c9d5624
9 changed files with 151 additions and 1 deletions
@@ -0,0 +1,45 @@
namespace StevesBot.Worker.Tests.Unit;
public class LockReleaserTests
{
[Fact]
public void Constructor_WhenCalled_ItShouldCreateInstance()
{
using var semaphore = new SemaphoreSlim(1);
using var lockReleaser = new LockReleaser(semaphore);
lockReleaser.Should().NotBeNull();
lockReleaser.Should().BeOfType<LockReleaser>();
}
[Fact]
public void Constructor_WhenCalledAndSemaphoreIsNull_ItShouldThrowArgumentNullException()
{
var act = static () => new LockReleaser(null!);
act.Should().Throw<ArgumentNullException>();
}
[Fact]
public void Dispose_WhenCalled_ItShouldReleaseSemaphore()
{
using var semaphore = new SemaphoreSlim(0, 1);
using var lockReleaser = new LockReleaser(semaphore);
lockReleaser.Dispose();
semaphore.CurrentCount.Should().Be(1);
}
[Fact]
public void Dispose_WhenCalledMultipleTimes_ItShouldReleaseSemaphoreOnlyOnce()
{
using var semaphore = new SemaphoreSlim(0, 1);
using var lockReleaser = new LockReleaser(semaphore);
lockReleaser.Dispose();
lockReleaser.Dispose();
semaphore.CurrentCount.Should().Be(1);
}
}