M lib/entry/libimagentrytag/Cargo.toml => lib/entry/libimagentrytag/Cargo.toml +3 -0
@@ 42,3 42,6 @@ version = "^2.29"
default-features = false
features = ["color", "suggestions", "wrap_help"]
+[dev-dependencies]
+env_logger = "0.5"
+
M lib/entry/libimagentrytag/src/lib.rs => lib/entry/libimagentrytag/src/lib.rs +2 -0
@@ 48,6 48,8 @@ extern crate serde;
extern crate filters;
#[macro_use] extern crate failure;
+#[cfg(test)] extern crate env_logger;
+
extern crate libimagstore;
extern crate libimagerror;
M lib/entry/libimagentrytag/src/tagable.rs => lib/entry/libimagentrytag/src/tagable.rs +40 -0
@@ 116,3 116,43 @@ impl Tagable for Entry {
}
+#[cfg(test)]
+mod tests {
+ use std::path::PathBuf;
+
+ use toml_query::read::TomlValueReadTypeExt;
+
+ use libimagstore::store::Store;
+
+ use super::*;
+
+ fn setup_logging() {
+ let _ = ::env_logger::try_init();
+ }
+
+ fn get_store() -> Store {
+ Store::new_inmemory(PathBuf::from("/"), &None).unwrap()
+ }
+
+ #[test]
+ fn test_tag_set_sets_tag() {
+ setup_logging();
+ let store = get_store();
+ let name = "test-tag-set-sets-tags";
+
+ debug!("Creating default entry");
+ let id = PathBuf::from(String::from(name));
+ let mut entry = store.create(id).unwrap();
+
+ let tags = vec![String::from("testtag")];
+ entry.set_tags(&tags).unwrap();
+
+ let v = entry.get_header().read_string("tags.values.[0]").unwrap();
+
+ assert!(v.is_some());
+ let v = v.unwrap();
+
+ assert_eq!(v, "testtag");
+ }
+
+}