public void BackgroundColor_NotChanged_NoEvent() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.GetMethodCount(StubbedConsoleControl.MethodOnBackgroundColorChanged).Should().Be(0); sut.BackgroundColor = sut.BackgroundColor; sut.BackgroundColor.Should().BeNull(); sut.GetMethodCount(StubbedConsoleControl.MethodOnBackgroundColorChanged).Should().Be(0); }
public void FocusedBorderStyle_NotChanged_NoEvent() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.GetMethodCount(StubbedConsoleControl.MethodOnBorderStyleChanged).Should().Be(0); sut.FocusedBorderStyle = sut.FocusedBorderStyle; sut.FocusedBorderStyle.Should().BeNull(); sut.GetMethodCount(StubbedConsoleControl.MethodOnBorderStyleChanged).Should().Be(0); }
public void DrawClientArea_Disposed_ObjectDisposedException() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.Dispose(); sut.Invoking(s => s.DoDrawClientArea(new StubIConsoleGraphics())) .Should() .Throw <ObjectDisposedException>(); }
public void DrawBorder_GraphicsNull_ArgumentNullException() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.Invoking(s => s.DoDrawBorder(null !)) .Should() .Throw <ArgumentNullException>() .Which.ParamName.Should() .Be("graphics"); }
public void BorderColor_Changed_ThreadSafeHandlerCall() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.BorderColor.Should().BeNull(); sut.GetMethodCount(StubbedConsoleControl.MethodOnBorderColorChanged).Should().Be(0); sut.BorderColor = ConsoleColor.DarkMagenta; sut.BorderColor.Should().Be(ConsoleColor.DarkMagenta); sut.GetMethodCount(StubbedConsoleControl.MethodOnBorderColorChanged).Should().Be(1); }
public void Parent_SameNullParent_Nothing() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.GetMethodCount(StubbedConsoleControl.MethodOnParentChanged).Should().Be(0); sut.Parent.Should().BeNull(); sut.Parent = null; sut.GetMethodCount(StubbedConsoleControl.MethodOnParentChanged).Should().Be(0); sut.Parent.Should().BeNull(); }
public void GetClientArea_BorderStyleBold_ClientArea() { var stubbedWindow = new StubbedWindow(); Rectangle area = new Rectangle(5, 5, 10, 10); Rectangle expectedClientArea = new Rectangle(1, 1, 8, 8); var sut = new StubbedConsoleControl(stubbedWindow) { Area = area, BorderStyle = BorderStyle.Bold }; sut.ClientArea.Should().Be(expectedClientArea); }
public void RemoveRange_Removed() { using var stubbedWindow = new StubbedWindow(); var control1 = new StubbedConsoleControl(stubbedWindow); var control2 = new StubbedConsoleControl(stubbedWindow); var control3 = new StubbedConsoleControl(stubbedWindow); var control4 = new StubbedConsoleControl(stubbedWindow); stubbedWindow.Controls.AddRange(control1, control2, control3); stubbedWindow.Controls.RemoveRange(control1, null !, control4); stubbedWindow.Controls.Should().Equal(control2, control3); }
public void BorderStyle_Changed_ThreadSafeHandlerCall() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.BorderStyle.Should().Be(BorderStyle.None); sut.GetMethodCount(StubbedConsoleControl.MethodOnBorderStyleChanged).Should().Be(0); sut.BorderStyle = BorderStyle.DoubleLined; sut.BorderStyle.Should().Be(BorderStyle.DoubleLined); sut.GetMethodCount(StubbedConsoleControl.MethodOnBorderStyleChanged).Should().Be(1); }
public void GetClientArea_BorderStyleNone_FullArea() { var stubbedWindow = new StubbedWindow(); Rectangle area = new Rectangle(5, 5, 10, 10); Rectangle expectedClientArea = new Rectangle(0, 0, 10, 10); var sut = new StubbedConsoleControl(stubbedWindow) { Area = area, BorderStyle = BorderStyle.None }; sut.ClientArea.Should().Be(expectedClientArea); }
public void CheckDisposed_ControlDisposed_ObjectDisposedException() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.DisposeInternal(false); stubbedWindow.KeyEventEvent.Should().NotBeNull(); stubbedWindow.MouseEventEvent.Should().NotBeNull(); sut.Dispose(); sut.Invoking(c => c.DoCheckDisposed()) .Should().Throw <ObjectDisposedException>() .Which .ObjectName .Should().Be(nameof(StubbedConsoleControl)); }
public void Draw_WindowDisposed_ObjectDisposedException() { var stubbedWindow = new StubbedWindow { IsDisposedGet = () => true }; var sut = new StubbedConsoleControl(stubbedWindow); sut.Invoking(s => s.Draw()) .Should() .Throw <ObjectDisposedException>() .Which.ObjectName.Should() .Be(nameof(ConsoleWindow)); }
public void Draw_ControlDisposed_ObjectDisposedException() { var stubbedWindow = new StubbedWindow(); const string name = "testname"; var sut = new StubbedConsoleControl(stubbedWindow) { Name = name, Area = new Rectangle(1, 1, 10, 10) }; sut.Dispose(); sut.Invoking(s => s.Draw()) .Should() .Throw <ObjectDisposedException>() .Which.ObjectName.Should() .Be(name); }
public void Add_ControlsTwice_AddedOnceAndEventsRaised() { using var stubbedWindow = new StubbedWindow(); var sut = new ConControls.Controls.ControlCollection(stubbedWindow); ConControls.Controls.ConsoleControl?control1 = new StubbedConsoleControl(stubbedWindow); ConControls.Controls.ConsoleControl?control2 = new StubbedConsoleControl(stubbedWindow); int added1 = 0, added2 = 0; sut.ControlCollectionChanged += (sender, e) => { sender.Should().BeSameAs(sut); if (e.AddedControls.Contains(control1)) { added1++; } else if (e.AddedControls.Contains(control2)) { added2++; } else { Assert.Fail(); } }; sut.Add(control1); added1.Should().Be(1); added2.Should().Be(0); sut.Count.Should().Be(1); sut[0].Should().BeSameAs(control1); sut.Add(control2); added1.Should().Be(1); added2.Should().Be(1); sut.Count.Should().Be(2); sut[0].Should().BeSameAs(control1); sut[1].Should().BeSameAs(control2); sut.Add(control1); added1.Should().Be(1); added2.Should().Be(1); sut.Count.Should().Be(2); sut[0].Should().BeSameAs(control1); sut[1].Should().BeSameAs(control2); }
public void Parent_ValidParent_ControlCollectionsChanged() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; var differentParent = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; sut.Parent = differentParent; sut.Parent.Should().Be(differentParent); sut.GetMethodCount(StubbedConsoleControl.MethodOnParentChanged).Should().Be(2); stubbedWindow.Controls.Should().Equal(differentParent); differentParent.Controls.Should().Equal(sut); }
public void GetEnumerator_WorksCorrectly() { using var stubbedWindow = new StubbedWindow(); var control1 = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; var control2 = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; var control3 = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; stubbedWindow.Controls.Should().Equal(control1, control2, control3); }
public void Location_NotChanged_NoEvent() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); bool eventRaised = false; sut.AreaChanged += (sender, e) => { sender.Should().Be(sut); eventRaised = true; }; sut.GetMethodCount(StubbedConsoleControl.MethodOnAreaChanged).Should().Be(0); sut.Location = sut.Location; sut.Location.Should().Be(Point.Empty); sut.GetMethodCount(StubbedConsoleControl.MethodOnAreaChanged).Should().Be(0); eventRaised.Should().BeFalse(); }
public void DrawingInhibited_DrawingDeferred_Correct() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; var deferrer1 = sut.DeferDrawing(); sut.DrawingInhibited.Should().BeTrue(); var deferrer2 = sut.DeferDrawing(); sut.DrawingInhibited.Should().BeTrue(); deferrer1.Dispose(); sut.DrawingInhibited.Should().BeTrue(); deferrer2.Dispose(); sut.DrawingInhibited.Should().BeFalse(); }
public void CursorVisible_NotChanged_NoEvent() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); bool eventRaised = false; sut.CursorVisibleChanged += (sender, e) => { sender.Should().Be(sut); eventRaised = true; }; sut.GetMethodCount(StubbedConsoleControl.MethodOnCursorVisibleChanged).Should().Be(0); sut.CursorVisible = sut.CursorVisible; sut.CursorVisible.Should().BeFalse(); sut.GetMethodCount(StubbedConsoleControl.MethodOnCursorVisibleChanged).Should().Be(0); eventRaised.Should().BeFalse(); }
public void Remove_Control_RemovedAndEventCalled() { using var stubbedWindow = new StubbedWindow(); var control1 = new StubbedConsoleControl(stubbedWindow); var control2 = new StubbedConsoleControl(stubbedWindow); bool called = false; stubbedWindow.Controls.Add(control1); stubbedWindow.Controls.Add(control2); stubbedWindow.Controls.ControlCollectionChanged += (sender, e) => { called.Should().BeFalse(); called = true; }; stubbedWindow.Controls.Remove(control1); stubbedWindow.Controls.Count.Should().Be(1); stubbedWindow.Controls[0].Should().BeSameAs(control2); called.Should().BeTrue(); }
public void Parent_DifferentWindow_InvalidOperationException() { var stubbedWindow = new StubbedWindow(); var differentWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; var differentParent = new StubbedConsoleControl(differentWindow) { Parent = differentWindow }; sut.Invoking(s => s.Parent = differentParent) .Should() .Throw <InvalidOperationException>(); sut.GetMethodCount(StubbedConsoleControl.MethodOnParentChanged).Should().Be(1); sut.Parent.Should().Be(stubbedWindow); }
public void Controls_ChildAreaChanged_Handled() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; var child = new StubbedConsoleControl(stubbedWindow) { Parent = sut }; sut.ResetMethodCount(); child.Area = new Rectangle(1, 2, 3, 4); sut.GetMethodCount(StubbedConsoleControl.MethodDrawClientArea).Should().Be(1); sut.Controls.Remove(child); sut.ResetMethodCount(); child.Area = new Rectangle(2, 3, 4, 5); sut.GetMethodCount(StubbedConsoleControl.MethodDrawClientArea).Should().Be(0); }
public void Name_Null_Default() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow) { Name = "different" }; bool eventRaised = false; sut.NameChanged += (sender, e) => { sender.Should().Be(sut); eventRaised = true; }; sut.GetMethodCount(StubbedConsoleControl.MethodOnNameChanged).Should().Be(1); sut.Name = null !; sut.Name.Should().Be(nameof(StubbedConsoleControl)); sut.GetMethodCount(StubbedConsoleControl.MethodOnNameChanged).Should().Be(2); eventRaised.Should().BeTrue(); }
public void AddRange_Mutliple_Distinct() { var stubbedWindow = new StubbedWindow(); var sut = new ConControls.Controls.ControlCollection(stubbedWindow); var control1 = new StubbedConsoleControl(stubbedWindow); var control2 = new StubbedConsoleControl(stubbedWindow); var control3 = new StubbedConsoleControl(stubbedWindow); var control4 = new StubbedConsoleControl(stubbedWindow); sut.AddRange(control1, null !, control2); sut.Count.Should().Be(2); sut[0].Should().BeSameAs(control1); sut[1].Should().BeSameAs(control2); sut.AddRange(control3, null !, control2, control4); sut.Count.Should().Be(4); sut[0].Should().BeSameAs(control1); sut[1].Should().BeSameAs(control2); sut[2].Should().BeSameAs(control3); sut[3].Should().BeSameAs(control4); }
public void CursorSize_Changed_ThreadSafeHandlerCall() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.CursorSize.Should().BeNull(); bool eventRaised = false; sut.CursorSizeChanged += (sender, e) => { sender.Should().Be(sut); eventRaised = true; }; sut.GetMethodCount(StubbedConsoleControl.MethodOnCursorSizeChanged).Should().Be(0); eventRaised.Should().BeFalse(); sut.CursorSize = 23; sut.CursorSize.Should().Be(23); sut.GetMethodCount(StubbedConsoleControl.MethodOnCursorSizeChanged).Should().Be(1); eventRaised.Should().BeTrue(); }
public void EffectiveBorderStyle_NoExtraValues_DefaultValues() { ConControls.Controls.ConsoleControl?focused = null; var stubbedWindow = new StubbedWindow { EnabledGet = () => true, FocusedControlGet = () => focused, FocusedControlSetConsoleControl = c => focused = c }; var sut = new StubbedConsoleControl(stubbedWindow) { Focusable = true }; sut.EffBorderStyle.Should().Be(BorderStyle.None); sut.Enabled = false; sut.EffBorderStyle.Should().Be(BorderStyle.None); sut.Focused = true; sut.EffBorderStyle.Should().Be(BorderStyle.None); sut.Enabled = true; sut.EffBorderStyle.Should().Be(BorderStyle.None); }
public void Visible_NotChanged_NoEvent() { var stubbedWindow = new StubbedWindow { VisibleGet = () => true }; var sut = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; bool eventRaised = false; sut.VisibleChanged += (sender, e) => { sender.Should().Be(sut); eventRaised = true; }; sut.GetMethodCount(StubbedConsoleControl.MethodOnVisibleChanged).Should().Be(0); sut.Visible = sut.Visible; sut.Visible.Should().BeTrue(); sut.GetMethodCount(StubbedConsoleControl.MethodOnVisibleChanged).Should().Be(0); eventRaised.Should().BeFalse(); }
public void Draw_WithoutGraphics_AllPartsDrawnFlushed() { bool flushed = false; var graphics = new StubIConsoleGraphics { Flush = () => flushed = true }; var stubbedWindow = new StubbedWindow { GetGraphics = () => graphics }; var sut = new StubbedConsoleControl(stubbedWindow) { Parent = stubbedWindow }; sut.ResetMethodCount(); flushed = false; sut.Draw(); sut.GetMethodCount(StubbedConsoleControl.MethodDrawBackground).Should().Be(1); sut.GetMethodCount(StubbedConsoleControl.MethodDrawBorder).Should().Be(1); sut.GetMethodCount(StubbedConsoleControl.MethodDrawClientArea).Should().Be(1); flushed.Should().BeTrue(); }
public void RemoveRange_RemovedAndEventFired() { using var stubbedWindow = new StubbedWindow(); var sut = new ConControls.Controls.ControlCollection(stubbedWindow); var control1 = new StubbedConsoleControl(stubbedWindow); var control2 = new StubbedConsoleControl(stubbedWindow); var control3 = new StubbedConsoleControl(stubbedWindow); var control4 = new StubbedConsoleControl(stubbedWindow); sut.AddRange(control1, control2, control3); int fired = 0; sut.ControlCollectionChanged += (sender, e) => { fired.Should().Be(0); e.RemovedControls.Should().Equal(control1, control3); fired++; }; sut.RemoveRange(control1, null !, control4, control3); sut.Should().Equal(control2); fired.Should().Be(1); }
public void Location_Changed_ThreadSafeHandlerCall() { var stubbedWindow = new StubbedWindow(); var sut = new StubbedConsoleControl(stubbedWindow); sut.Location.Should().Be(Point.Empty); bool eventRaised = false; sut.AreaChanged += (sender, e) => { sender.Should().Be(sut); eventRaised = true; }; sut.GetMethodCount(StubbedConsoleControl.MethodOnAreaChanged).Should().Be(0); eventRaised.Should().BeFalse(); var point = new Point(1, 2); sut.Location = point; sut.Location.Should().Be(point); sut.GetMethodCount(StubbedConsoleControl.MethodOnAreaChanged).Should().Be(1); eventRaised.Should().BeTrue(); }