Added cache update function.
This commit is contained in:
parent
d73a18be2d
commit
fcec57414a
@ -61,6 +61,16 @@ impl MoreThanText {
|
|||||||
None => Err(DBError::new("cache entry not found")),
|
None => Err(DBError::new("cache entry not found")),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn update_entry(&self, id: &str, entry: CacheEntry) -> Result<(), DBError> {
|
||||||
|
match self.get_entry(id).await {
|
||||||
|
Ok(_) => (),
|
||||||
|
Err(err) => return Err(err),
|
||||||
|
}
|
||||||
|
let mut cache = self.cache.lock().await;
|
||||||
|
cache.insert(id.to_string(), entry);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
@ -157,4 +167,23 @@ mod cache {
|
|||||||
Err(err) => assert_eq!(err.to_string(), "cache entry not found"),
|
Err(err) => assert_eq!(err.to_string(), "cache entry not found"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn update_cache_entry() {
|
||||||
|
let mtt = MTT::new().await;
|
||||||
|
let id = mtt.db.add_entry(CacheEntry::Raw("same".to_string())).await;
|
||||||
|
let expected = "different";
|
||||||
|
mtt.db.update_entry(&id, CacheEntry::Raw(expected.to_string())).await.unwrap();
|
||||||
|
let output = mtt.db.get_entry(&id).await.unwrap();
|
||||||
|
assert_eq!(output.to_string(), expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn update_bad_id() {
|
||||||
|
let mtt = MTT::new().await;
|
||||||
|
match mtt.db.update_entry("wilma", CacheEntry::Raw("wrong".to_string())).await {
|
||||||
|
Ok(_) => assert!(false, "Bad id should raise an error."),
|
||||||
|
Err(err) => assert_eq!(err.to_string(), "cache entry not found"),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user