using Xunit.Abstractions; namespace UnitTests_Parallelizable.ApplicationTests.RunnableTests; /// /// Tests for RunnableSessionToken class. /// public class RunnableSessionTokenTests (ITestOutputHelper output) { private readonly ITestOutputHelper _output = output; [Fact] public void RunnableSessionToken_Constructor_SetsRunnable () { // Arrange Runnable runnable = new (); // Act RunnableSessionToken token = new (runnable); // Assert Assert.NotNull (token.Runnable); Assert.Same (runnable, token.Runnable); } [Fact] public void RunnableSessionToken_Runnable_CanBeSetToNull () { // Arrange Runnable runnable = new (); RunnableSessionToken token = new (runnable); // Act token.Runnable = null; // Assert Assert.Null (token.Runnable); } [Fact] public void RunnableSessionToken_Dispose_ThrowsIfRunnableNotNull () { // Arrange Runnable runnable = new (); RunnableSessionToken token = new (runnable); // Act & Assert Assert.Throws (() => token.Dispose ()); } [Fact] public void RunnableSessionToken_Dispose_SucceedsIfRunnableIsNull () { // Arrange Runnable runnable = new (); RunnableSessionToken token = new (runnable); token.Runnable = null; // Act & Assert - should not throw token.Dispose (); } }