Пример #1
0
        public void HideStatusBar_HappyPath_RestoresAttributeAndErasesCharactersAtBottom()
        {
            CharInfo[] actualBuffer = new CharInfo[4];
            actualBuffer[2].AsciiChar = 'X';
            actualBuffer[3].AsciiChar = 'X';

            // Arrange

            var screenBufferMock = new Mock <IScreenBuffer>();

            screenBufferMock.SetupGet(sb => sb.Width).Returns(2);
            screenBufferMock.SetupGet(sb => sb.Height).Returns(2);
            screenBufferMock.Setup(sb => sb.Render(It.IsAny <Action <CharInfo[]> >()))
            .Callback <Action <CharInfo[]> >(a => a(actualBuffer));

            // Act

            var screenController = new ScreenController(screenBufferMock.Object);

            screenController.HideStatusBar();

            // Assert

            const int attribute = 0 << 4 | 7;

            actualBuffer[2].AsciiChar.Should().Be('\0');
            actualBuffer[2].Attributes.Should().Be(attribute);

            actualBuffer[3].AsciiChar.Should().Be('\0');
            actualBuffer[3].Attributes.Should().Be(attribute);
        }