55 lines
2.0 KiB
Rust
55 lines
2.0 KiB
Rust
use rusqlite::{Result, Transaction};
|
|
|
|
use crate::db::{_securities, _users};
|
|
use crate::db::_accounts::create_checking_account;
|
|
use crate::db::_external_id::UserId;
|
|
use crate::db::_securities::{NewSecurity, Security, SecurityType};
|
|
use crate::db::_users::User;
|
|
use crate::db::accounts::Account;
|
|
use crate::util::CustomResult;
|
|
|
|
pub fn mock_currency_1() -> NewSecurity {
|
|
return NewSecurity {
|
|
security_type: SecurityType::Currency,
|
|
symbol: "P".to_string(),
|
|
name: "piastre".to_string(),
|
|
};
|
|
}
|
|
|
|
pub fn mock_currency_2() -> NewSecurity {
|
|
return NewSecurity {
|
|
security_type: SecurityType::Bond,
|
|
symbol: "B".to_string(),
|
|
name: "bong".to_string(),
|
|
};
|
|
}
|
|
|
|
pub fn setup_users(tx: &Transaction) -> Result<Vec<User>> {
|
|
let user_1 = _users::create_user(tx, &"bernard".to_string(), &"123".to_string())?;
|
|
let user_2 = _users::create_user(tx, &"sam".to_string(), &"abc".to_string())?;
|
|
return Ok(vec![user_1, user_2]);
|
|
}
|
|
|
|
pub fn setup_securities(tx: &Transaction, _owner: &UserId) -> Result<Vec<Security>> {
|
|
let sec_1 = _securities::create_security(tx, &mock_currency_1())?;
|
|
let sec_2 = _securities::create_security(tx, &mock_currency_2())?;
|
|
return Ok(vec![sec_1, sec_2]);
|
|
}
|
|
|
|
pub fn setup_users_and_securities(tx: &Transaction) -> Result<(Vec<User>, Vec<Security>)> {
|
|
let users = setup_users(tx)?;
|
|
let securities = setup_securities(tx, &users.get(0).unwrap().id())?;
|
|
Ok((users, securities))
|
|
}
|
|
|
|
pub fn setup_basic_environment(tx: &Transaction) -> CustomResult<(Vec<User>, Vec<Security>, Vec<Account>)> {
|
|
let (users, securities) = setup_users_and_securities(tx).unwrap();
|
|
|
|
let acc1 = create_checking_account(tx,
|
|
&securities.get(0).unwrap().id(),
|
|
&users.get(0).unwrap().id())?;
|
|
let acc2 = create_checking_account(tx,
|
|
&securities.get(1).unwrap().id(),
|
|
&users.get(1).unwrap().id())?;
|
|
Ok((users, securities, vec![acc1, acc2]))
|
|
} |