diff options
author | Tim Oram <dev@mitmaro.ca> | 2020-11-12 22:36:06 -0330 |
---|---|---|
committer | Tim Oram <dev@mitmaro.ca> | 2020-11-14 11:27:28 -0330 |
commit | 41fcfa4cd2d1a6ad2d6acdcf6635689e194bf192 (patch) | |
tree | 3841f4f62069c35253314ef9522cbd919f0aba38 | |
parent | b3d90e8b18d516a6d7d500a89dc0463d0e3fb318 (diff) |
Add additional tests to show_commit:delta
-rw-r--r-- | src/show_commit/delta.rs | 1 | ||||
-rw-r--r-- | src/show_commit/diff_line.rs | 1 | ||||
-rw-r--r-- | src/show_commit/file_stat.rs | 45 |
3 files changed, 46 insertions, 1 deletions
diff --git a/src/show_commit/delta.rs b/src/show_commit/delta.rs index eb895c2..63870f7 100644 --- a/src/show_commit/delta.rs +++ b/src/show_commit/delta.rs @@ -1,6 +1,7 @@ use crate::show_commit::diff_line::DiffLine; #[derive(Debug, Clone)] +#[cfg_attr(test, derive(PartialEq))] pub struct Delta { old_start: u32, old_lines: u32, diff --git a/src/show_commit/diff_line.rs b/src/show_commit/diff_line.rs index 098d9bb..f4a1819 100644 --- a/src/show_commit/diff_line.rs +++ b/src/show_commit/diff_line.rs @@ -1,6 +1,7 @@ use crate::show_commit::origin::Origin; #[derive(Debug, Clone)] +#[cfg_attr(test, derive(PartialEq))] pub struct DiffLine { end_of_file: bool, line: String, diff --git a/src/show_commit/file_stat.rs b/src/show_commit/file_stat.rs index 96c255e..ddddd57 100644 --- a/src/show_commit/file_stat.rs +++ b/src/show_commit/file_stat.rs @@ -70,10 +70,53 @@ mod tests { use super::*; #[test] - fn commit_user_file_stat() { + fn no_deltas() { let file_stat = FileStat::new("/from/path".to_string(), "/to/path".to_string(), Status::Renamed); assert_eq!(*file_stat.get_status(), Status::Renamed); assert_eq!(file_stat.get_from_name(), "/from/path"); assert_eq!(file_stat.get_to_name(), "/to/path"); + assert_eq!(file_stat.largest_old_line_number(), 0); + assert_eq!(file_stat.largest_new_line_number(), 0); + assert!(file_stat.deltas().is_empty()); + } + + #[test] + fn add_delta() { + let mut file_stat = FileStat::new("/from/path".to_string(), "/to/path".to_string(), Status::Renamed); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 10, 12, 3, 4)); + assert_eq!(file_stat.largest_old_line_number(), 13); + assert_eq!(file_stat.largest_new_line_number(), 16); + assert_eq!(file_stat.deltas().len(), 1); + } + + #[test] + fn add_delta_with_larger_old_line_number() { + let mut file_stat = FileStat::new("/from/path".to_string(), "/to/path".to_string(), Status::Renamed); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 10, 12, 3, 4)); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 14, 12, 3, 4)); + assert_eq!(file_stat.largest_old_line_number(), 17); + assert_eq!(file_stat.largest_new_line_number(), 16); + assert_eq!(file_stat.deltas().len(), 2); + } + + #[test] + fn add_delta_with_larger_new_line_number() { + let mut file_stat = FileStat::new("/from/path".to_string(), "/to/path".to_string(), Status::Renamed); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 10, 12, 3, 4)); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 10, 17, 3, 4)); + assert_eq!(file_stat.largest_old_line_number(), 13); + assert_eq!(file_stat.largest_new_line_number(), 21); + assert_eq!(file_stat.deltas().len(), 2); + } + + #[test] + fn add_delta_with_larger_new_and_old_line_number() { + let mut file_stat = FileStat::new("/from/path".to_string(), "/to/path".to_string(), Status::Renamed); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 10, 12, 3, 4)); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 14, 12, 3, 4)); + file_stat.add_delta(Delta::new("@ src/show_commit/delta.rs:56 @ impl Delta {", 10, 17, 3, 4)); + assert_eq!(file_stat.largest_old_line_number(), 17); + assert_eq!(file_stat.largest_new_line_number(), 21); + assert_eq!(file_stat.deltas().len(), 3); } } |