50 lines
2.2 KiB
Rust
50 lines
2.2 KiB
Rust
use opaque_ke::argon2::password_hash::rand_core::OsRng;
|
|
use nkode_protocol::client::app::{ClientApp, NewUserRegisterKey};
|
|
use nkode_protocol::client::client_auth_api::ClientAuth;
|
|
use nkode_protocol::client::repo::InMemoryClientRepo;
|
|
use nkode_protocol::server::app::ServerApp;
|
|
use nkode_protocol::server::repository::in_memory::in_memory_opaque_db::InMemoryOpaqueDB;
|
|
use nkode_protocol::server::repository::in_memory::in_memory_opaque_session::InMemoryOpaqueSession;
|
|
use nkode_protocol::server::repository::in_memory::in_memory_transport::{InMemoryCodeServer, InMemoryKeyServer, InMemoryServerTransport};
|
|
use nkode_protocol::server::repository::in_memory::in_memory_user_db::InMemoryUserDB;
|
|
use nkode_protocol::shared::email::Email;
|
|
use nkode_protocol::shared::models::app::IconID;
|
|
use nkode_protocol::shared::opaque::{NKodeServerSetup, UserSecretKey};
|
|
|
|
#[tokio::test]
|
|
async fn in_memory_client_app() {
|
|
|
|
let mut rng = OsRng;
|
|
let server_setup = NKodeServerSetup::new(&mut rng);
|
|
let server = ServerApp::new(
|
|
server_setup,
|
|
InMemoryOpaqueDB::new(),
|
|
InMemoryOpaqueSession::new(),
|
|
InMemoryUserDB::new()
|
|
);
|
|
let key_transport: InMemoryKeyServer = InMemoryServerTransport::new(&server);
|
|
let code_transport: InMemoryCodeServer = InMemoryServerTransport::new(&server);
|
|
let user_db = InMemoryUserDB::new();
|
|
let client_auth = ClientAuth::new(&key_transport, &code_transport, user_db);
|
|
let client_repo = InMemoryClientRepo::new();
|
|
let client_app_new_user: ClientApp<
|
|
'_,
|
|
'_,
|
|
NewUserRegisterKey,
|
|
InMemoryServerTransport<'_, _>,
|
|
InMemoryServerTransport<'_, _>,
|
|
_,
|
|
_
|
|
> = ClientApp::new(client_auth, client_repo);
|
|
let user_email = Email::new("a@b.com").unwrap();
|
|
let user_secret_key = UserSecretKey::new();
|
|
let client_app_register_code = client_app_new_user.new_user(user_email, user_secret_key).await.unwrap();
|
|
let _: Vec<IconID> = client_app_register_code
|
|
.get_new_user_icons().await.unwrap()
|
|
.iter()
|
|
.map(
|
|
|el| el.id().clone()
|
|
).collect();
|
|
// let client_app_user_login = client_app_register_code.new_user_register_code(icons[0..4].to_vec()).await.unwrap();
|
|
}
|