/
commit.rs
36 lines (30 loc) · 912 Bytes
/
commit.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use std::cmp::Ordering;
use git_testtools::hex_to_id;
use crate::basic_repo;
#[test]
fn short_id() -> crate::Result {
let repo = basic_repo()?;
let commit = repo.head_commit()?;
assert_eq!(commit.short_id()?.cmp_oid(&commit.id), Ordering::Equal);
Ok(())
}
#[test]
fn tree() -> crate::Result {
let repo = basic_repo()?;
let commit = repo.head_commit()?;
assert_eq!(commit.tree()?.id, commit.tree_id().expect("id present"));
assert_eq!(
commit.tree_id().ok().map(|id| id.detach()),
Some(hex_to_id("21d3ba9a26b790a4858d67754ae05d04dfce4d0c"))
);
Ok(())
}
#[test]
fn decode() -> crate::Result {
let repo = basic_repo()?;
let commit = repo.head_commit()?;
assert_eq!(commit.decode()?.message, commit.message_raw()?);
assert_eq!(commit.decode()?.message(), commit.message()?);
assert_eq!(commit.decode()?.message, "c2\n");
Ok(())
}