Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
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>();
        }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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));
        }
Ejemplo n.º 12
0
        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));
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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();
        }
Ejemplo n.º 18
0
        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();
        }
Ejemplo n.º 19
0
        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();
        }
Ejemplo n.º 20
0
        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();
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
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();
        }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
        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();
        }
Ejemplo n.º 26
0
        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);
        }
Ejemplo n.º 27
0
        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();
        }
Ejemplo n.º 28
0
        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();
        }
Ejemplo n.º 29
0
        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);
        }
Ejemplo n.º 30
0
        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();
        }