SingleOrQueueTests.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Avalonia.Utilities;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using Xunit;
  6. namespace Avalonia.Base.UnitTests.Utilities
  7. {
  8. public class SingleOrQueueTests
  9. {
  10. [Fact]
  11. public void New_SingleOrQueue_Is_Empty()
  12. {
  13. Assert.True(new SingleOrQueue<object>().Empty);
  14. }
  15. [Fact]
  16. public void Dequeue_Throws_When_Empty()
  17. {
  18. var queue = new SingleOrQueue<object>();
  19. Assert.Throws<InvalidOperationException>(() => queue.Dequeue());
  20. }
  21. [Fact]
  22. public void Enqueue_Adds_Element()
  23. {
  24. var queue = new SingleOrQueue<int>();
  25. queue.Enqueue(1);
  26. Assert.False(queue.Empty);
  27. Assert.Equal(1, queue.Dequeue());
  28. }
  29. [Fact]
  30. public void Multiple_Elements_Dequeued_In_Correct_Order()
  31. {
  32. var queue = new SingleOrQueue<int>();
  33. queue.Enqueue(1);
  34. queue.Enqueue(2);
  35. queue.Enqueue(3);
  36. Assert.Equal(1, queue.Dequeue());
  37. Assert.Equal(2, queue.Dequeue());
  38. Assert.Equal(3, queue.Dequeue());
  39. }
  40. }
  41. }