test for backup_add

This commit is contained in:
qwjyh 2024-03-15 13:56:23 +09:00
parent ff32996360
commit 26fbea5d3a
2 changed files with 62 additions and 1 deletions

View file

@ -89,10 +89,70 @@ fn new_backup(
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use std::path::{Component, PathBuf};
use anyhow::Result; use anyhow::Result;
use crate::{
cmd_args::BackupAddCommands,
devices::Device,
storages::{online_storage::OnlineStorage, Storage, Storages},
};
use super::new_backup;
#[test] #[test]
fn test_new_backup() -> Result<()> { fn test_new_backup() -> Result<()> {
todo!() let device = Device::new("dev".to_string());
let storage1 = Storage::Online(OnlineStorage::new(
"online".to_string(),
"provider".to_string(),
1_000_000_000,
"alias".to_string(),
PathBuf::new()
.join(Component::RootDir)
.join("mnt")
.join("sample"),
&device,
));
let storage2 = Storage::Online(OnlineStorage::new(
"online2".to_string(),
"provider".to_string(),
1_000_000_000,
"alias".to_string(),
PathBuf::new()
.join(Component::RootDir)
.join("mnt")
.join("different"),
&device,
));
let mut storages = Storages::new();
storages.add(storage1)?;
storages.add(storage2)?;
let cmd = BackupAddCommands::External {
name: "sampple_backup".to_string(),
note: "This is jus.to_string()t for test.".to_string(),
};
let backup = new_backup(
"new backup".to_string(),
PathBuf::new()
.join(Component::RootDir)
.join("mnt")
.join("sample")
.join("docs"),
PathBuf::new()
.join(Component::RootDir)
.join("mnt")
.join("sample")
.join("tmp"),
cmd,
&device,
&storages,
)?;
assert!(backup.source().storage == "online");
assert_eq!(backup.source().path, PathBuf::from("docs"));
assert!(backup.destination().storage == "online");
assert!(backup.destination().path == PathBuf::from("tmp"));
Ok(())
} }
} }

View file

@ -23,6 +23,7 @@ pub struct Device {
impl Device { impl Device {
/// Create new `Device` of name `name`. Additional data is obtained via sysinfo. /// Create new `Device` of name `name`. Additional data is obtained via sysinfo.
/// Filling fields which one failed to get is filled with "unknown".
pub fn new(name: String) -> Device { pub fn new(name: String) -> Device {
let sys = System::new(); let sys = System::new();
Device { Device {