Added db session.
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
mod databases;
|
||||
pub mod error;
|
||||
mod session;
|
||||
|
||||
use async_std::{
|
||||
fs::{create_dir, read, remove_file, write},
|
||||
@ -10,6 +11,7 @@ use async_std::{
|
||||
use databases::Databases;
|
||||
use error::DBError;
|
||||
use rand::{distributions::Alphanumeric, thread_rng, Rng};
|
||||
use session::Session;
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
fmt, slice, str,
|
||||
@ -130,7 +132,7 @@ impl fmt::Display for CacheEntry {
|
||||
pub struct MoreThanText {
|
||||
cache: Arc<Mutex<HashMap<String, CacheEntry>>>,
|
||||
dir: String,
|
||||
entry: String,
|
||||
session: Session,
|
||||
}
|
||||
|
||||
impl MoreThanText {
|
||||
@ -149,7 +151,7 @@ impl MoreThanText {
|
||||
let mut output = Self {
|
||||
cache: Arc::new(Mutex::new(HashMap::new())),
|
||||
dir: data_dir.to_str().unwrap().to_string(),
|
||||
entry: "undeclared".to_string(),
|
||||
session: Session::new(),
|
||||
};
|
||||
let entry_file = Path::new(dir).join(ENTRY);
|
||||
let id: String;
|
||||
@ -163,7 +165,7 @@ impl MoreThanText {
|
||||
.unwrap();
|
||||
write(entry_file, id.as_bytes()).await.unwrap();
|
||||
}
|
||||
output.entry = id;
|
||||
output.session.push(id);
|
||||
let looper = output.cache.clone();
|
||||
spawn(async move {
|
||||
let hold_time = Duration::from_secs(300);
|
||||
@ -341,7 +343,7 @@ mod init {
|
||||
let id = str::from_utf8(&data).unwrap();
|
||||
let cache = db.get_entry(&id).await.unwrap();
|
||||
assert_eq!(cache.data.entry_type(), "DBMap");
|
||||
assert_eq!(db.entry, id);
|
||||
assert_eq!(db.session.get_data(), [id]);
|
||||
}
|
||||
|
||||
#[async_std::test]
|
||||
@ -353,7 +355,11 @@ mod init {
|
||||
let db2 = MoreThanText::new(dir.path().to_str().unwrap())
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(db1.entry, db2.entry, "Did not read existing entry.");
|
||||
assert_eq!(
|
||||
db1.session.get_data(),
|
||||
db2.session.get_data(),
|
||||
"Did not read existing entry."
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user