summaryrefslogtreecommitdiffstats
path: root/libimagentrylink
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-10-15 11:31:30 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-10-15 11:35:01 +0200
commitb64eae9654e930f6683bdc6300e87e82b1e53901 (patch)
tree46f6cf9f6dbcf4ccceac5abf07c0ce0cb6bc7cd6 /libimagentrylink
parent6d31913321090c819bdcd5f43441a5c8efc22a13 (diff)
Add multi-link test
Diffstat (limited to 'libimagentrylink')
-rw-r--r--libimagentrylink/src/internal.rs77
1 files changed, 77 insertions, 0 deletions
diff --git a/libimagentrylink/src/internal.rs b/libimagentrylink/src/internal.rs
index 966968a5..4f294035 100644
--- a/libimagentrylink/src/internal.rs
+++ b/libimagentrylink/src/internal.rs
@@ -326,5 +326,82 @@ mod test {
}
}
+ #[test]
+ fn test_multiple_links() {
+ setup_logging();
+ let store = get_store();
+
+ let mut e1 = store.retrieve(PathBuf::from("1")).unwrap();
+ let mut e2 = store.retrieve(PathBuf::from("2")).unwrap();
+ let mut e3 = store.retrieve(PathBuf::from("3")).unwrap();
+ let mut e4 = store.retrieve(PathBuf::from("4")).unwrap();
+ let mut e5 = store.retrieve(PathBuf::from("5")).unwrap();
+
+ assert!(e1.add_internal_link(&mut e2).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+
+ assert!(e1.add_internal_link(&mut e3).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 2);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+
+ assert!(e1.add_internal_link(&mut e4).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 3);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+
+ assert!(e1.add_internal_link(&mut e5).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 4);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+
+ assert!(e5.remove_internal_link(&mut e1).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 3);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+
+ assert!(e4.remove_internal_link(&mut e1).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 2);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+
+ assert!(e3.remove_internal_link(&mut e1).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 1);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+
+ assert!(e2.remove_internal_link(&mut e1).is_ok());
+
+ assert_eq!(e1.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e2.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e3.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e4.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+ assert_eq!(e5.get_internal_links().unwrap().collect::<Vec<_>>().len(), 0);
+
+ }
+
}