39 lines
924 B
Rust
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)
|
|
}
|
|
}
|