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); }