Rust learning: lessons, notes, and exercise crates
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
use std::fs;
|
||||
|
||||
use tasks::error::TaskError;
|
||||
use tasks::store::Store;
|
||||
use tasks::task::Status;
|
||||
|
||||
use crate::common::{temp_path, three_tasks};
|
||||
|
||||
mod common;
|
||||
|
||||
#[test]
|
||||
fn completing_task_that_are_done_is_not_an_error() -> Result<(), TaskError> {
|
||||
let mut m = three_tasks();
|
||||
|
||||
m.complete(1)?;
|
||||
|
||||
let t = m.find(1).unwrap();
|
||||
assert_eq!(t.status, Status::Done);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn reload_saved_working() -> Result<(), TaskError> {
|
||||
let mut m = three_tasks();
|
||||
let p = temp_path();
|
||||
m.remove_completed();
|
||||
m.save(&p)?;
|
||||
|
||||
let m2 = Store::load(&p)?;
|
||||
assert_eq!(m2, m);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn smaller_store_smaller_saved_files() -> Result<(), TaskError> {
|
||||
let mut m = three_tasks();
|
||||
let p = temp_path();
|
||||
m.save(&p)?;
|
||||
|
||||
m.remove_completed();
|
||||
m.save(&p)?;
|
||||
|
||||
let s = fs::read_to_string(p)?;
|
||||
assert_eq!(s.lines().count(), 2);
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user