diff --git a/src/vga_buffer.rs b/src/vga_buffer.rs index 8c512c94..329ed425 100644 --- a/src/vga_buffer.rs +++ b/src/vga_buffer.rs @@ -170,4 +170,26 @@ mod test { color_code: ColorCode::new(Color::Green, Color::Brown), } } + + #[test] + fn write_byte() { + let mut writer = construct_writer(); + writer.write_byte(b'X'); + writer.write_byte(b'Y'); + + for (i, row) in writer.buffer.chars.iter().enumerate() { + for (j, screen_char) in row.iter().enumerate() { + let screen_char = screen_char.read(); + if i == BUFFER_HEIGHT - 1 && j == 0 { + assert_eq!(screen_char.ascii_character, b'X'); + assert_eq!(screen_char.color_code, writer.color_code); + } else if i == BUFFER_HEIGHT - 1 && j == 1 { + assert_eq!(screen_char.ascii_character, b'Y'); + assert_eq!(screen_char.color_code, writer.color_code); + } else { + assert_eq!(screen_char, empty_char()); + } + } + } + } }