Continued work to get items into a session.
This commit is contained in:
parent
60dae69788
commit
51fc2c8921
@ -105,6 +105,10 @@ impl SessionData for Databases {
|
||||
Ok(_) => (),
|
||||
Err(err) => return Err(err),
|
||||
}
|
||||
match self.db_map.get(value) {
|
||||
Some(_) => return Err(DBError::new(format!("database {} already exists", value))),
|
||||
None => (),
|
||||
}
|
||||
self.db_map.insert(value.to_string(), data.to_string());
|
||||
let mut output = Vec::new();
|
||||
output.push(data.to_string());
|
||||
@ -117,8 +121,10 @@ impl SessionData for Databases {
|
||||
Err(err) => return Err(err),
|
||||
}
|
||||
let mut output = Vec::new();
|
||||
let data = self.db_map.get(value).unwrap();
|
||||
output.push(data.to_string());
|
||||
match self.db_map.get(value) {
|
||||
Some(data) => output.push(data.to_string()),
|
||||
None => (),
|
||||
}
|
||||
Ok(output)
|
||||
}
|
||||
|
||||
@ -307,4 +313,25 @@ mod session_data {
|
||||
Err(_) => (),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn unique_names() {
|
||||
let mut dbs = Databases::new();
|
||||
let value = "wilma";
|
||||
dbs.add("name", value, "something").unwrap();
|
||||
match dbs.add("name", value, "overwrite") {
|
||||
Ok(_) => assert!(false, "Duplicate names should produce an error."),
|
||||
Err(err) => assert_eq!(
|
||||
err.to_string(),
|
||||
format!("database {} already exists", value)
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn get_missing() {
|
||||
let dbs = Databases::new();
|
||||
let output = dbs.get("name", "melvin").unwrap();
|
||||
assert_eq!(output, Vec::<String>::new());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user