use git2::Repository; use git_anger_management::repo::Repo; use std::path::Path; #[test] fn test_commit_count() { let repo = Repository::open(Path::new("./tests/repo").to_path_buf()).unwrap(); let commits = Repo::commits(&repo).unwrap(); assert_eq!(commits.len(), 5); } #[test] fn test_example_repo() { let repo = Repo::new(Path::new("./tests/repo")).unwrap(); assert_eq!(repo.authors.len(), 3); assert_eq!(repo.total_commits, 5); assert_eq!(repo.total_curses, 7); let john = repo.authors.get("John Doe").unwrap(); assert_eq!(john.total_curses, 2); assert_eq!(john.total_commits, 1); assert_eq!(john.curses.get("bloody").unwrap(), &1); assert_eq!(john.curses.get("damn").unwrap(), &1); let me = repo.authors.get("Sondre Nilsen").unwrap(); assert_eq!(me.total_curses, 3); assert_eq!(me.total_commits, 3); assert_eq!(me.curses.get("fuck").unwrap(), &1); assert_eq!(me.curses.get("fucking").unwrap(), &1); assert_eq!(me.curses.get("shitty").unwrap(), &1); let ola = repo.authors.get("Ola Nordmann").unwrap(); assert_eq!(ola.total_curses, 2); assert_eq!(ola.total_commits, 1); assert_eq!(ola.curses.get("fucking").unwrap(), &1); assert_eq!(ola.curses.get("bitch").unwrap(), &1); } #[test] fn test_curse_total() { let repo = Repo::new(Path::new("./tests/repo")).unwrap(); let total: usize = repo .authors .values() .map(|a| a.curses.values().sum::()) .sum(); assert_eq!(total, repo.total_curses); }