Test mocked invalid request error
This commit is contained in:
parent
9a44d96262
commit
65eb87e1d4
|
@ -6,6 +6,7 @@ extern crate yup_hyper_mock;
|
||||||
|
|
||||||
use chrono::{UTC, Duration};
|
use chrono::{UTC, Duration};
|
||||||
use inth_oauth2::{Client, ClientError, Token, Lifetime};
|
use inth_oauth2::{Client, ClientError, Token, Lifetime};
|
||||||
|
use inth_oauth2::error::OAuth2ErrorCode;
|
||||||
|
|
||||||
mod provider {
|
mod provider {
|
||||||
use inth_oauth2::token::{Bearer, Static, Expiring};
|
use inth_oauth2::token::{Bearer, Static, Expiring};
|
||||||
|
@ -44,6 +45,15 @@ mod connector {
|
||||||
include_str!("response/request_token_bearer_expiring.http")
|
include_str!("response/request_token_bearer_expiring.http")
|
||||||
include_str!("response/refresh_token_bearer_partial.http")
|
include_str!("response/refresh_token_bearer_partial.http")
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mock_connector_in_order!(InvalidRequest {
|
||||||
|
include_str!("response/invalid_request.http")
|
||||||
|
});
|
||||||
|
|
||||||
|
mock_connector_in_order!(RefreshInvalidRequest {
|
||||||
|
include_str!("response/request_token_bearer_expiring.http")
|
||||||
|
include_str!("response/invalid_request.http")
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! mock_client {
|
macro_rules! mock_client {
|
||||||
|
@ -117,3 +127,34 @@ fn request_token_bearer_expiring_wrong_lifetime() {
|
||||||
let err = client.request_token("code").unwrap_err();
|
let err = client.request_token("code").unwrap_err();
|
||||||
assert!(match err { ClientError::Parse(..) => true, _ => false });
|
assert!(match err { ClientError::Parse(..) => true, _ => false });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn request_token_invalid_request() {
|
||||||
|
let client = mock_client!(provider::BearerStatic, connector::InvalidRequest);
|
||||||
|
let err = client.request_token("code").unwrap_err();
|
||||||
|
assert!(match err {
|
||||||
|
ClientError::OAuth2(err) => {
|
||||||
|
assert_eq!(OAuth2ErrorCode::InvalidRequest, err.code);
|
||||||
|
assert_eq!("example", err.description.unwrap());
|
||||||
|
assert_eq!("https://example.com/error", err.uri.unwrap());
|
||||||
|
true
|
||||||
|
},
|
||||||
|
_ => false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn refresh_token_invalid_request() {
|
||||||
|
let client = mock_client!(provider::BearerExpiring, connector::RefreshInvalidRequest);
|
||||||
|
let token = client.request_token("code").unwrap();
|
||||||
|
let err = client.refresh_token(token, None).unwrap_err();
|
||||||
|
assert!(match err {
|
||||||
|
ClientError::OAuth2(err) => {
|
||||||
|
assert_eq!(OAuth2ErrorCode::InvalidRequest, err.code);
|
||||||
|
assert_eq!("example", err.description.unwrap());
|
||||||
|
assert_eq!("https://example.com/error", err.uri.unwrap());
|
||||||
|
true
|
||||||
|
},
|
||||||
|
_ => false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
HTTP/1.1 400 Bad Request
|
||||||
|
Content-Type: application/json;charset=UTF-8
|
||||||
|
Cache-Control: no-store
|
||||||
|
Pragma: no-cache
|
||||||
|
|
||||||
|
{
|
||||||
|
"error":"invalid_request",
|
||||||
|
"error_description":"example",
|
||||||
|
"error_uri":"https://example.com/error"
|
||||||
|
}
|
Loading…
Reference in New Issue