mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-01-01 16:59:35 +01:00
Added unit tests for Viewport/FrameChanged events. Fixed bugs.
This commit is contained in:
@@ -259,4 +259,55 @@ public class FrameTests (ITestOutputHelper output)
|
||||
Assert.Equal (Dim.Absolute (40), v.Height);
|
||||
v.Dispose ();
|
||||
}
|
||||
|
||||
private class TestFrameEventsView : View
|
||||
{
|
||||
public int OnFrameChangedCallCount { get; private set; }
|
||||
public int FrameChangedEventCallCount { get; private set; }
|
||||
|
||||
public TestFrameEventsView ()
|
||||
{
|
||||
FrameChanged += (sender, args) => FrameChangedEventCallCount++;
|
||||
}
|
||||
|
||||
protected override void OnFrameChanged (in Rectangle frame)
|
||||
{
|
||||
OnFrameChangedCallCount++;
|
||||
base.OnFrameChanged (frame);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OnFrameChanged_Called_When_Frame_Changes ()
|
||||
{
|
||||
// Arrange
|
||||
var view = new TestFrameEventsView ();
|
||||
var initialFrame = new Rectangle (0, 0, 10, 10);
|
||||
var newFrame = new Rectangle (0, 0, 20, 20);
|
||||
view.Frame = initialFrame;
|
||||
Assert.Equal (1, view.OnFrameChangedCallCount);
|
||||
|
||||
// Act
|
||||
view.Frame = newFrame;
|
||||
|
||||
// Assert
|
||||
Assert.Equal (2, view.OnFrameChangedCallCount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FrameChanged_Event_Raised_When_Frame_Changes ()
|
||||
{
|
||||
// Arrange
|
||||
var view = new TestFrameEventsView ();
|
||||
var initialFrame = new Rectangle (0, 0, 10, 10);
|
||||
var newFrame = new Rectangle (0, 0, 20, 20);
|
||||
view.Frame = initialFrame;
|
||||
Assert.Equal (1, view.FrameChangedEventCallCount);
|
||||
|
||||
// Act
|
||||
view.Frame = newFrame;
|
||||
|
||||
// Assert
|
||||
Assert.Equal (2, view.FrameChangedEventCallCount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -387,6 +387,93 @@ public class ViewportTests (ITestOutputHelper output)
|
||||
Assert.NotEqual (view.Viewport.Size, view.GetContentSize ());
|
||||
}
|
||||
|
||||
private class TestViewportEventsView : View
|
||||
{
|
||||
public int OnViewportChangedCallCount { get; private set; }
|
||||
public int ViewportChangedEventCallCount { get; private set; }
|
||||
|
||||
public TestViewportEventsView ()
|
||||
{
|
||||
ViewportChanged += (sender, args) => ViewportChangedEventCallCount++;
|
||||
}
|
||||
|
||||
protected override void OnViewportChanged (DrawEventArgs e)
|
||||
{
|
||||
OnViewportChangedCallCount++;
|
||||
base.OnViewportChanged (e);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OnViewportChanged_Called_When_Viewport_Changes ()
|
||||
{
|
||||
// Arrange
|
||||
var view = new TestViewportEventsView ();
|
||||
var initialViewport = new Rectangle (0, 0, 10, 10);
|
||||
var newViewport = new Rectangle (0, 0, 20, 20);
|
||||
Assert.Equal (0, view.OnViewportChangedCallCount);
|
||||
view.Viewport = initialViewport;
|
||||
Assert.Equal (1, view.OnViewportChangedCallCount);
|
||||
|
||||
// Act
|
||||
view.Viewport = newViewport;
|
||||
|
||||
// Assert
|
||||
Assert.Equal (2, view.OnViewportChangedCallCount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ViewportChanged_Event_Raised_When_Viewport_Changes ()
|
||||
{
|
||||
// Arrange
|
||||
var view = new TestViewportEventsView ();
|
||||
var initialViewport = new Rectangle (0, 0, 10, 10);
|
||||
var newViewport = new Rectangle (0, 0, 20, 20);
|
||||
view.Viewport = initialViewport;
|
||||
Assert.Equal (1, view.ViewportChangedEventCallCount);
|
||||
|
||||
// Act
|
||||
view.Viewport = newViewport;
|
||||
|
||||
// Assert
|
||||
Assert.Equal (2, view.ViewportChangedEventCallCount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OnViewportChanged_Called_When_Frame_Changes ()
|
||||
{
|
||||
// Arrange
|
||||
var view = new TestViewportEventsView ();
|
||||
var initialFrame = new Rectangle (0, 0, 10, 10);
|
||||
var newFrame = new Rectangle (0, 0, 20, 20);
|
||||
Assert.Equal (0, view.OnViewportChangedCallCount);
|
||||
view.Frame = initialFrame;
|
||||
Assert.Equal (1, view.OnViewportChangedCallCount);
|
||||
|
||||
// Act
|
||||
view.Frame = newFrame;
|
||||
|
||||
// Assert
|
||||
Assert.Equal (2, view.OnViewportChangedCallCount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ViewportChanged_Event_Raised_When_Frame_Changes ()
|
||||
{
|
||||
// Arrange
|
||||
var view = new TestViewportEventsView ();
|
||||
var initialFrame = new Rectangle (0, 0, 10, 10);
|
||||
var newFrame = new Rectangle (0, 0, 20, 20);
|
||||
view.Frame = initialFrame;
|
||||
Assert.Equal (1, view.ViewportChangedEventCallCount);
|
||||
|
||||
// Act
|
||||
view.Frame = newFrame;
|
||||
|
||||
// Assert
|
||||
Assert.Equal (2, view.ViewportChangedEventCallCount);
|
||||
}
|
||||
|
||||
//[Theory]
|
||||
//[InlineData (0, 0, true)]
|
||||
//[InlineData (-1, 0, true)]
|
||||
|
||||
Reference in New Issue
Block a user