summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Oram <dev@mitmaro.ca>2020-11-12 22:36:06 -0330
committerTim Oram <dev@mitmaro.ca>2020-11-14 11:27:28 -0330
commit41fcfa4cd2d1a6ad2d6acdcf6635689e194bf192 (patch)
tree3841f4f62069c35253314ef9522cbd919f0aba38
parentb3d90e8b18d516a6d7d500a89dc0463d0e3fb318 (diff)
Add additional tests to show_commit:delta
-rw-r--r--src/show_commit/delta.rs1
-rw-r--r--src/show_commit/diff_line.rs1
-rw-r--r--src/show_commit/file_stat.rs45
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);
}
}