More test refactoring
This commit is contained in:
parent
ea49d93e14
commit
98143ddc55
|
|
@ -142,10 +142,12 @@ mod tests {
|
||||||
use std::io::{Read, Seek, SeekFrom, Write};
|
use std::io::{Read, Seek, SeekFrom, Write};
|
||||||
use tempfile::NamedTempFile;
|
use tempfile::NamedTempFile;
|
||||||
|
|
||||||
fn test_command(editor_buffer: EditorBuffer, command: Command) -> EditorBuffer {
|
macro_rules! test_command {
|
||||||
let result = editor_buffer.execute(command);
|
( $editor_buffer:ident, $command:expr ) => {
|
||||||
|
let result = $editor_buffer.execute($command);
|
||||||
assert!(result.is_ok());
|
assert!(result.is_ok());
|
||||||
result.buffer
|
let $editor_buffer = result.buffer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_simple_test_file() -> NamedTempFile {
|
fn create_simple_test_file() -> NamedTempFile {
|
||||||
|
|
@ -179,7 +181,7 @@ mod tests {
|
||||||
.read_to_string(&mut expected_contents)
|
.read_to_string(&mut expected_contents)
|
||||||
.expect("Reading text file");
|
.expect("Reading text file");
|
||||||
let target = EditorBuffer::new();
|
let target = EditorBuffer::new();
|
||||||
let target = test_command(target, Command::OpenFile(test_file.path().into()));
|
test_command!(target, Command::OpenFile(test_file.path().into()));
|
||||||
let found_contents: String = target.buffer.iter_chars().collect();
|
let found_contents: String = target.buffer.iter_chars().collect();
|
||||||
assert_eq!(expected_contents, found_contents);
|
assert_eq!(expected_contents, found_contents);
|
||||||
}
|
}
|
||||||
|
|
@ -196,12 +198,12 @@ mod tests {
|
||||||
fn move_cursor_to_point_in_file() {
|
fn move_cursor_to_point_in_file() {
|
||||||
let test_file = create_simple_test_file();
|
let test_file = create_simple_test_file();
|
||||||
let target = EditorBuffer::new();
|
let target = EditorBuffer::new();
|
||||||
let target = test_command(target, Command::OpenFile(test_file.path().into()));
|
test_command!(target, Command::OpenFile(test_file.path().into()));
|
||||||
let target = test_command(target, Command::MoveCursorTo(Point::LineColumn(0, 5)));
|
test_command!(target, Command::MoveCursorTo(Point::LineColumn(0, 5)));
|
||||||
assert_eq!(Point::LineColumn(0, 5), target.get_cursor_position());
|
assert_eq!(Point::LineColumn(0, 5), target.get_cursor_position());
|
||||||
let target = test_command(target, Command::MoveCursorTo(Point::LineColumn(3, 11)));
|
test_command!(target, Command::MoveCursorTo(Point::LineColumn(3, 11)));
|
||||||
assert_eq!(Point::LineColumn(3, 11), target.get_cursor_position());
|
assert_eq!(Point::LineColumn(3, 11), target.get_cursor_position());
|
||||||
let target = test_command(target, Command::MoveCursorTo(Point::LineColumn(3, 0)));
|
test_command!(target, Command::MoveCursorTo(Point::LineColumn(3, 0)));
|
||||||
assert_eq!(Point::LineColumn(3, 0), target.get_cursor_position());
|
assert_eq!(Point::LineColumn(3, 0), target.get_cursor_position());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -217,9 +219,9 @@ mod tests {
|
||||||
expected_lines[2] = "Xbíth a menmasam fri seilgg";
|
expected_lines[2] = "Xbíth a menmasam fri seilgg";
|
||||||
let expected_lines = expected_lines;
|
let expected_lines = expected_lines;
|
||||||
let target = EditorBuffer::new();
|
let target = EditorBuffer::new();
|
||||||
let target = test_command(target, Command::OpenFile(test_file.path().into()));
|
test_command!(target, Command::OpenFile(test_file.path().into()));
|
||||||
let target = test_command(target, Command::MoveCursorTo(Point::LineColumn(3, 0)));
|
test_command!(target, Command::MoveCursorTo(Point::LineColumn(3, 0)));
|
||||||
let target = test_command(target, Command::InsertChar('X'));
|
test_command!(target, Command::InsertChar('X'));
|
||||||
let found_lines: Vec<String> = target
|
let found_lines: Vec<String> = target
|
||||||
.buffer
|
.buffer
|
||||||
.iter_chars()
|
.iter_chars()
|
||||||
|
|
@ -239,9 +241,9 @@ mod tests {
|
||||||
expected_lines[2] = "bXíth a menmasam fri seilgg";
|
expected_lines[2] = "bXíth a menmasam fri seilgg";
|
||||||
let expected_lines = expected_lines;
|
let expected_lines = expected_lines;
|
||||||
let target = EditorBuffer::new();
|
let target = EditorBuffer::new();
|
||||||
let target = test_command(target, Command::OpenFile(test_file.path().into()));
|
test_command!(target, Command::OpenFile(test_file.path().into()));
|
||||||
let target = test_command(target, Command::MoveCursorTo(Point::LineColumn(3, 1)));
|
test_command!(target, Command::MoveCursorTo(Point::LineColumn(3, 1)));
|
||||||
let target = test_command(target, Command::InsertChar('X'));
|
test_command!(target, Command::InsertChar('X'));
|
||||||
let found_lines: Vec<String> = target
|
let found_lines: Vec<String> = target
|
||||||
.buffer
|
.buffer
|
||||||
.iter_chars()
|
.iter_chars()
|
||||||
|
|
@ -261,9 +263,9 @@ mod tests {
|
||||||
expected_lines[2] = "bíXth a menmasam fri seilgg";
|
expected_lines[2] = "bíXth a menmasam fri seilgg";
|
||||||
let expected_lines = expected_lines;
|
let expected_lines = expected_lines;
|
||||||
let target = EditorBuffer::new();
|
let target = EditorBuffer::new();
|
||||||
let target = test_command(target, Command::OpenFile(test_file.path().into()));
|
test_command!(target, Command::OpenFile(test_file.path().into()));
|
||||||
let target = test_command(target, Command::MoveCursorTo(Point::LineColumn(3, 2)));
|
test_command!(target, Command::MoveCursorTo(Point::LineColumn(3, 2)));
|
||||||
let target = test_command(target, Command::InsertChar('X'));
|
test_command!(target, Command::InsertChar('X'));
|
||||||
let found_lines: Vec<String> = target
|
let found_lines: Vec<String> = target
|
||||||
.buffer
|
.buffer
|
||||||
.iter_chars()
|
.iter_chars()
|
||||||
|
|
@ -283,9 +285,9 @@ mod tests {
|
||||||
expected_lines[2] = "bíth a menmXasam fri seilgg";
|
expected_lines[2] = "bíth a menmXasam fri seilgg";
|
||||||
let expected_lines = expected_lines;
|
let expected_lines = expected_lines;
|
||||||
let target = EditorBuffer::new();
|
let target = EditorBuffer::new();
|
||||||
let target = test_command(target, Command::OpenFile(test_file.path().into()));
|
test_command!(target, Command::OpenFile(test_file.path().into()));
|
||||||
let target = test_command(target, Command::MoveCursorTo(Point::LineColumn(3, 11)));
|
test_command!(target, Command::MoveCursorTo(Point::LineColumn(3, 11)));
|
||||||
let target = test_command(target, Command::InsertChar('X'));
|
test_command!(target, Command::InsertChar('X'));
|
||||||
let found_lines: Vec<String> = target
|
let found_lines: Vec<String> = target
|
||||||
.buffer
|
.buffer
|
||||||
.iter_chars()
|
.iter_chars()
|
||||||
|
|
@ -308,16 +310,16 @@ mod tests {
|
||||||
expected_lines.insert(6, "abc 123".into());
|
expected_lines.insert(6, "abc 123".into());
|
||||||
|
|
||||||
let target = EditorBuffer::new();
|
let target = EditorBuffer::new();
|
||||||
let target = test_command(target, Command::OpenFile(test_file.path().into()));
|
test_command!(target, Command::OpenFile(test_file.path().into()));
|
||||||
let target = test_command(target, Command::MoveCursorToLine(7));
|
test_command!(target, Command::MoveCursorToLine(7));
|
||||||
let target = test_command(target, Command::InsertChar('a'));
|
test_command!(target, Command::InsertChar('a'));
|
||||||
let target = test_command(target, Command::InsertChar('b'));
|
test_command!(target, Command::InsertChar('b'));
|
||||||
let target = test_command(target, Command::InsertChar('c'));
|
test_command!(target, Command::InsertChar('c'));
|
||||||
let target = test_command(target, Command::InsertChar(' '));
|
test_command!(target, Command::InsertChar(' '));
|
||||||
let target = test_command(target, Command::InsertChar('1'));
|
test_command!(target, Command::InsertChar('1'));
|
||||||
let target = test_command(target, Command::InsertChar('2'));
|
test_command!(target, Command::InsertChar('2'));
|
||||||
let target = test_command(target, Command::InsertChar('3'));
|
test_command!(target, Command::InsertChar('3'));
|
||||||
let target = test_command(target, Command::InsertChar('\n'));
|
test_command!(target, Command::InsertChar('\n'));
|
||||||
let found_lines: Vec<String> = target
|
let found_lines: Vec<String> = target
|
||||||
.buffer
|
.buffer
|
||||||
.iter_chars()
|
.iter_chars()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue