public void verifica_se_ReadLine_com_isSensitive_está_movimentando_o_cursor_corretamente( int posiçãoInicialCursorTop, int posiçãoInicialCursorLeft, string texto) { // Arrange, Given var console = new SimulationForIConsole(texto) as IConsole; var inputConsole = new InputConsole(console); console.CursorTop = posiçãoInicialCursorTop; console.CursorLeft = posiçãoInicialCursorLeft; // Act, When inputConsole.ReadLine(true); // Assert, Then var esperadoParaCursorTop = posiçãoInicialCursorTop + 1 + texto.Length / console.BufferWidth; if (esperadoParaCursorTop > console.BufferHeight) { esperadoParaCursorTop = console.BufferHeight - 1; } console.CursorTop.Should().Be(esperadoParaCursorTop); console.CursorLeft.Should().Be(0); }
public void ao_final_de_ReadLine_deve_escrever_o_texto_e_avançar_uma_linha(bool isSensitive) { // Arrange, Given var texto = this.Fixture <string>(); var console = new SimulationForIConsole(texto); var inputConsole = new InputConsole(console); var textoEsperado = !isSensitive ? texto : new string('*', texto.Length); // Act, When inputConsole.ReadLine(isSensitive); // Assert, Then console.OQueFoiEscrito.Should().Be(textoEsperado + Environment.NewLine); }
public void confere_posicionamento_do_cursor_ao_usar_backspace_com_ReadLine_isSensitive(string texto, int posiçãoEsperadaAntesDoEnterDeCursorTop, int posiçãoEsperadaAntesDoEnterDeCursorLeft) { // Arrange, Given var console = new SimulationForIConsole(texto); var inputConsole = new InputConsole(console); const int posiçãoInicialDeCursorTop = 10; console.CursorTop = posiçãoInicialDeCursorTop; string TextoComBackspaceProcessado() { var resultado = new StringBuilder(); foreach (var ch in texto) { if (ch != '\b') { resultado.Append(ch); } else if (resultado.Length > 0) { resultado.Remove(resultado.Length - 1, 1); } } return(resultado.ToString()); } var textoComBackspaceProcessado = TextoComBackspaceProcessado(); // Act, When inputConsole.ReadLine(true); // Assert, Then var historicoCursorTop = console.Historico["CursorTop"]; var historicoCursorLeft = console.Historico["CursorLeft"]; historicoCursorTop[^ 2].Should().Be(posiçãoInicialDeCursorTop + posiçãoEsperadaAntesDoEnterDeCursorTop);