ForgeFlux/src/auth/application/port/out/db/save_oauth_access_token.rs

39 lines
924 B
Rust

use mockall::predicate::*;
use mockall::*;
use super::errors::*;
use crate::auth::domain::OAuthAccessToken;
#[automock]
#[async_trait::async_trait]
pub trait SaveOAuthAccessToken: Send + Sync {
async fn save_oauth_access_token(
&self,
username: &str,
oauth_provider: &str,
access_token: &OAuthAccessToken,
) -> OutDBPortResult<()>;
}
#[cfg(test)]
pub mod tests {
use super::*;
use std::sync::Arc;
pub fn mock_save_oauth_access_token(times: Option<usize>) -> Arc<dyn SaveOAuthAccessToken> {
let mut m = MockSaveOAuthAccessToken::default();
if let Some(times) = times {
m.expect_save_oauth_access_token()
.times(times)
.returning(move |_, _, _| Ok(()));
} else {
m.expect_save_oauth_access_token()
.returning(move |_, _, _| Ok(()));
}
Arc::new(m)
}
}