| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using Moq;
- namespace UnitTests.ConsoleDrivers.V2;
- public class WindowSizeMonitorTests
- {
- public WindowSizeMonitorTests ()
- {
- ConsoleDriver.RunningUnitTests = false;
- }
- [Fact]
- public void TestWindowSizeMonitor_RaisesEventWhenChanges ()
- {
- var consoleOutput = new Mock<IConsoleOutput> ();
- var queue = new Queue<Size>(new []{
- new Size (30, 20),
- new Size (20, 20)
- });
- consoleOutput.Setup (m => m.GetWindowSize ())
- .Returns (queue.Dequeue);
- var outputBuffer = Mock.Of<IOutputBuffer> ();
- var monitor = new WindowSizeMonitor (consoleOutput.Object, outputBuffer);
- var result = new List<SizeChangedEventArgs> ();
- monitor.SizeChanging += (s, e) => { result.Add (e);};
- Assert.Empty (result);
- monitor.Poll ();
- Assert.Single (result);
- Assert.Equal (new Size (30,20),result [0].Size);
- monitor.Poll ();
- Assert.Equal (2,result.Count);
- Assert.Equal (new Size (30, 20), result [0].Size);
- Assert.Equal (new Size (20, 20), result [1].Size);
- }
- [Fact]
- public void TestWindowSizeMonitor_DoesNotRaiseEventWhen_NoChanges ()
- {
- var consoleOutput = new Mock<IConsoleOutput> ();
- var queue = new Queue<Size> (new []{
- new Size (30, 20),
- new Size (30, 20),
- });
- consoleOutput.Setup (m => m.GetWindowSize ())
- .Returns (queue.Dequeue);
- var outputBuffer = Mock.Of<IOutputBuffer> ();
- var monitor = new WindowSizeMonitor (consoleOutput.Object, outputBuffer);
- var result = new List<SizeChangedEventArgs> ();
- monitor.SizeChanging += (s, e) => { result.Add (e); };
- // First poll always raises event because going from unknown size i.e. 0,0
- Assert.Empty (result);
- monitor.Poll ();
- Assert.Single (result);
- Assert.Equal (new Size (30, 20), result [0].Size);
- // No change
- monitor.Poll ();
- Assert.Single (result);
- Assert.Equal (new Size (30, 20), result [0].Size);
- }
- }
|