Skip to content

Commit a40995d

Browse files
committed
feat(tests): added tests for metadata db
1 parent b3d49a6 commit a40995d

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

src/metadata.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,3 +161,59 @@ impl MetaDb {
161161
})
162162
}
163163
}
164+
165+
#[cfg(test)]
166+
mod test {
167+
use super::*;
168+
const DATA: [u8; 4] = [0xDE, 0xAD, 0xBE, 0xEF];
169+
170+
fn create_db() -> Result<MetaDb> {
171+
const META_TESTDIR: &str = "./cache/test-index";
172+
let path = path::PathBuf::from(META_TESTDIR);
173+
MetaDb::new(&path)
174+
}
175+
176+
#[test]
177+
fn create_metadb() {
178+
create_db().unwrap();
179+
}
180+
181+
#[test]
182+
fn db_read_write() {
183+
let db = create_db().unwrap();
184+
db.insert_metadata_for(&DATA, &DATA).unwrap();
185+
let meta = db.get_metadata(&DATA).unwrap();
186+
assert_eq!(meta.get_size(), DATA.len() as u64);
187+
}
188+
189+
#[test]
190+
fn check_integrity() {
191+
let db = create_db().unwrap();
192+
let meta = db.insert_metadata_for(&DATA, &DATA).unwrap();
193+
assert!(meta.check_integrity_of(&DATA));
194+
}
195+
196+
#[test]
197+
fn last_modified() {
198+
let db = create_db().unwrap();
199+
let meta = db.insert_metadata_for(&DATA, &DATA).unwrap();
200+
// make sure last-modified date is within last second
201+
assert!(
202+
meta.get_last_modified()
203+
.unwrap()
204+
.elapsed()
205+
.unwrap()
206+
.as_secs()
207+
== 0
208+
);
209+
}
210+
211+
#[test]
212+
fn metadata_ser_de() {
213+
let db = create_db().unwrap();
214+
let meta = db.insert_metadata_for(&DATA, &DATA).unwrap();
215+
let ser_bytes = meta.serialize().unwrap();
216+
let de = Metadata::deserialize(&ser_bytes).unwrap();
217+
assert_eq!(meta.get_integrity(), de.get_integrity());
218+
}
219+
}

0 commit comments

Comments
 (0)