SessionTokenTests.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #nullable enable
  2. namespace ApplicationTests;
  3. /// <summary>These tests focus on Application.SessionToken and the various ways it can be changed.</summary>
  4. public class SessionTokenTests
  5. {
  6. [Fact]
  7. public void Begin_Throws_On_Null ()
  8. {
  9. IApplication? app = Application.Create ();
  10. // Test null Runnable
  11. Assert.Throws<ArgumentNullException> (() => app.Begin (null!));
  12. }
  13. [Fact]
  14. public void Begin_End_Cleans_Up_SessionToken ()
  15. {
  16. IApplication? app = Application.Create ();
  17. Runnable<bool> top = new Runnable<bool> ();
  18. SessionToken? sessionToken = app.Begin (top);
  19. Assert.NotNull (sessionToken);
  20. app.End (sessionToken);
  21. Assert.Null (app.TopRunnableView);
  22. Assert.DoesNotContain(sessionToken, app.SessionStack!);
  23. top.Dispose ();
  24. }
  25. [Fact]
  26. public void New_Creates_SessionToken ()
  27. {
  28. var rs = new SessionToken (null!);
  29. Assert.Null (rs.Runnable);
  30. var top = new Runnable ();
  31. rs = new (top);
  32. Assert.Equal (top, rs.Runnable);
  33. }
  34. }