33 lines
852 B
Rust
33 lines
852 B
Rust
use mockall::predicate::*;
|
|
use mockall::*;
|
|
|
|
use super::errors::*;
|
|
use crate::auth::domain::OAuthAccessToken;
|
|
|
|
#[automock]
|
|
#[async_trait::async_trait]
|
|
pub trait RequestAccessToken: Send + Sync {
|
|
async fn request_access_token(&self, code: &str) -> OutForgePortResult<OAuthAccessToken>;
|
|
}
|
|
|
|
#[cfg(test)]
|
|
pub mod tests {
|
|
use super::*;
|
|
|
|
use std::sync::Arc;
|
|
|
|
pub fn mock_request_access_token(times: Option<usize>) -> Arc<dyn RequestAccessToken> {
|
|
let mut m = MockRequestAccessToken::default();
|
|
if let Some(times) = times {
|
|
m.expect_request_access_token()
|
|
.times(times)
|
|
.returning(|_| Ok(OAuthAccessToken::default()));
|
|
} else {
|
|
m.expect_request_access_token()
|
|
.returning(|_| Ok(OAuthAccessToken::default()));
|
|
}
|
|
|
|
Arc::new(m)
|
|
}
|
|
}
|