diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-01-18 22:07:14 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-01-18 22:07:14 +0100 |
| commit | 26c24bf226ca647793fdafbc5cda7c9c4646d147 (patch) | |
| tree | 9647d507226adee11a690f06ff17fc622b62a7c5 /src/command | |
| parent | 88c54a37d27ed6a5eba3cb1911723a7e331f5bd3 (diff) | |
add more command tests
Diffstat (limited to 'src/command')
| -rw-r--r-- | src/command/add_remote.rs | 67 | ||||
| -rw-r--r-- | src/command/help.rs | 2 | ||||
| -rw-r--r-- | src/command/remove_remote.rs | 59 | ||||
| -rw-r--r-- | src/command/version.rs | 48 |
4 files changed, 175 insertions, 1 deletions
diff --git a/src/command/add_remote.rs b/src/command/add_remote.rs index e5ca591..a40b184 100644 --- a/src/command/add_remote.rs +++ b/src/command/add_remote.rs @@ -42,3 +42,70 @@ impl super::Command for AddRemote { "<git_url>\t\tAdds or updates a git remote to sync with" } } + +#[cfg(test)] +mod tests { + + use super::*; + use crate::command::Command; + use crate::configuration::Configuration; + + use test_utilities::*; + + #[test] + fn test_add_remote_command() { + let add_remote = AddRemote::new(); + + // Create all directories + let test_dir = setup_test_dir(); + let remote_config = test_dir.join("blogremote"); + assert!(!remote_config.exists()); + + let mut configuration = Configuration::new(); + configuration.config_directory = test_dir.clone(); + configuration.remote_config = remote_config.clone(); + add_remote + .execute(Some(&"beep".to_string()), &configuration, "add_remote") + .expect("Could not call add_remote"); + assert_file_contents(&remote_config, "beep"); + cleanup_test_dir(&test_dir); + } + + #[test] + fn test_fails_if_no_remote_sent() { + let add_remote = AddRemote::new(); + let configuration = Configuration::new(); + let result = add_remote.execute(None, &configuration, "add_remote"); + assert!(result.is_err()); + } + + #[test] + fn add_remote_before_dependencies() { + let add_remote = AddRemote::new(); + let dependencies = add_remote.before_dependencies(); + + assert_eq!(dependencies.len(), 0); + } + + #[test] + fn add_remote_after_dependencies() { + let add_remote = AddRemote::new(); + let dependencies = add_remote.after_dependencies(); + + assert_eq!(dependencies.len(), 0); + } + + // These two tests feel pointless but I'm doing it for the coverage :p + + #[test] + fn add_remote_command_output() { + let add_remote = AddRemote::new(); + add_remote.command(); + } + + #[test] + fn add_remote_help_output() { + let add_remote = AddRemote::new(); + add_remote.help(); + } +} diff --git a/src/command/help.rs b/src/command/help.rs index da5831c..c018aa7 100644 --- a/src/command/help.rs +++ b/src/command/help.rs @@ -47,7 +47,7 @@ mod tests { use crate::configuration::Configuration; #[test] - fn test_add_command() { + fn test_help_command() { let help = Help::new(); let configuration = Configuration::new(); diff --git a/src/command/remove_remote.rs b/src/command/remove_remote.rs index ee1dfde..0d274d7 100644 --- a/src/command/remove_remote.rs +++ b/src/command/remove_remote.rs @@ -31,3 +31,62 @@ impl super::Command for RemoveRemote { "\t\t\tRemoves the git remote" } } + +#[cfg(test)] +mod tests { + + use super::*; + use crate::command::Command; + use crate::configuration::Configuration; + + use test_utilities::*; + + #[test] + fn test_remove_remote_command() { + let remove_remote = RemoveRemote::new(); + + // Create all directories + let test_dir = setup_test_dir(); + let remote_config = test_dir.join("blogremote"); + create_test_file(&remote_config, "boop"); + assert!(remote_config.exists()); + + let mut configuration = Configuration::new(); + configuration.remote_config = remote_config.clone(); + remove_remote + .execute(None, &configuration, "") + .expect("Could not call remove_remote"); + assert!(!remote_config.exists()); + cleanup_test_dir(&test_dir); + } + + #[test] + fn remove_remote_before_dependencies() { + let remove_remote = RemoveRemote::new(); + let dependencies = remove_remote.before_dependencies(); + + assert_eq!(dependencies.len(), 0); + } + + #[test] + fn remove_remote_after_dependencies() { + let remove_remote = RemoveRemote::new(); + let dependencies = remove_remote.after_dependencies(); + + assert_eq!(dependencies.len(), 0); + } + + // These two tests feel pointless but I'm doing it for the coverage :p + + #[test] + fn remove_remote_command_output() { + let remove_remote = RemoveRemote::new(); + remove_remote.command(); + } + + #[test] + fn remove_remote_help_output() { + let remove_remote = RemoveRemote::new(); + remove_remote.help(); + } +} diff --git a/src/command/version.rs b/src/command/version.rs index 94eb92e..53328e6 100644 --- a/src/command/version.rs +++ b/src/command/version.rs @@ -32,3 +32,51 @@ impl super::Command for Version { "\t\t\t\tPrints the version" } } + +#[cfg(test)] +mod tests { + + use super::*; + use crate::command::Command; + use crate::configuration::Configuration; + + #[test] + fn test_version_command() { + let version = Version::new(); + + let configuration = Configuration::new(); + version + .execute(None, &configuration, "") + .expect("Could not call version"); + } + + #[test] + fn version_before_dependencies() { + let version = Version::new(); + let dependencies = version.before_dependencies(); + + assert_eq!(dependencies.len(), 0); + } + + #[test] + fn version_after_dependencies() { + let version = Version::new(); + let dependencies = version.after_dependencies(); + + assert_eq!(dependencies.len(), 0); + } + + // These two tests feel pointless but I'm doing it for the coverage :p + + #[test] + fn version_command_output() { + let version = Version::new(); + version.command(); + } + + #[test] + fn version_help_output() { + let version = Version::new(); + version.help(); + } +} |