-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update dependencies 2023 08 17 (#12)
* Update url to 2.4 * Update mockito to next major 1.1 * Update mockito in blocking module * Simplify tests
- Loading branch information
Showing
3 changed files
with
47 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -85,19 +85,23 @@ mod tests { | |
use crate::common::parse_digest_auth_header; | ||
|
||
use digest_auth::HttpMethod; | ||
use mockito::{mock, Mock}; | ||
use reqwest::blocking::Client; | ||
use reqwest::{ | ||
header::{HeaderMap, HeaderValue}, | ||
StatusCode, | ||
}; | ||
use mockito::{Mock, Server}; | ||
use reqwest::blocking::{Client, RequestBuilder}; | ||
use reqwest::header::{HeaderMap, HeaderValue}; | ||
use reqwest::StatusCode; | ||
|
||
const PATH: &str = "/test"; | ||
|
||
fn create_request(server: &Server) -> RequestBuilder { | ||
Client::new().get(format!("{domain}{PATH}", domain = server.url())) | ||
} | ||
|
||
#[test] | ||
fn given_non_digest_auth_endpoint_when_send_with_da_then_request_executed_normally() { | ||
// Given I have a GET request against a non digest auth endpoint | ||
let path = "/test"; | ||
let mock = mock("GET", path).with_status(200).create(); | ||
let request = Client::new().get(format!("{domain}{path}", domain = mockito::server_url())); | ||
let mut server = mockito::Server::new(); | ||
let mock = server.mock("GET", PATH).with_status(200).create(); | ||
let request = create_request(&server); | ||
|
||
// When I send with digest auth | ||
let response = request.send_with_digest_auth("username", "password").unwrap(); | ||
|
@@ -110,9 +114,9 @@ mod tests { | |
#[test] | ||
fn given_non_digest_auth_endpoint_unauthorized_when_send_with_da_then_request_fails_with_401() { | ||
// Given I have a GET request against a non digest auth but authorized endpoint | ||
let path = "/test"; | ||
let mock = mock("GET", path).with_status(401).create(); | ||
let request = Client::new().get(format!("{domain}{path}", domain = mockito::server_url())); | ||
let mut server = mockito::Server::new(); | ||
let mock = server.mock("GET", PATH).with_status(401).create(); | ||
let request = create_request(&server); | ||
|
||
// When I send with digest auth | ||
let response = request.send_with_digest_auth("username", "password").unwrap(); | ||
|
@@ -125,23 +129,24 @@ mod tests { | |
#[test] | ||
fn given_digest_auth_endpoint_authorized_when_send_with_da_then_request_succeeds() { | ||
// Given I have a GET request against a digest auth endpoint with valid 'www-authenticate' header | ||
let path = "/test"; | ||
let url = format!("{domain}{path}", domain = mockito::server_url()); | ||
let mut server = mockito::Server::new(); | ||
let www_authenticate = "Digest realm=\"[email protected]\",qop=\"auth,auth-int\",nonce=\"dcd98b7102dd2f0e8b11d0f600bfb0c093\",opaque=\"5ccc069c403ebaf9f0171e9517f40e41\""; | ||
let mut header = HeaderMap::new(); | ||
header.insert("www-authenticate", HeaderValue::from_static(www_authenticate)); | ||
let auth_header = parse_digest_auth_header(&header, path, HttpMethod::GET, None, "username", "password").unwrap(); | ||
let auth_header = parse_digest_auth_header(&header, PATH, HttpMethod::GET, None, "username", "password").unwrap(); | ||
|
||
let first_request = mock("GET", path) | ||
let first_request = server | ||
.mock("GET", PATH) | ||
.with_status(401) | ||
.with_header("www-authenticate", www_authenticate) | ||
.create(); | ||
let second_request = mock("GET", path) | ||
let second_request = server | ||
.mock("GET", PATH) | ||
.with_header("Authorization", &auth_header.to_header_string()) | ||
.with_status(200) | ||
.create(); | ||
|
||
let request = Client::new().get(url); | ||
let request = create_request(&server); | ||
|
||
// When I send with digest auth | ||
let response = request.send_with_digest_auth("username", "password").unwrap(); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -136,18 +136,22 @@ mod tests { | |
use crate::WithDigestAuth; | ||
|
||
use digest_auth::HttpMethod; | ||
use mockito::{mock, Mock}; | ||
use reqwest::{ | ||
header::{HeaderMap, HeaderValue}, | ||
Client, StatusCode, | ||
}; | ||
use mockito::{Mock, Server}; | ||
use reqwest::header::{HeaderMap, HeaderValue}; | ||
use reqwest::{Client, RequestBuilder, StatusCode}; | ||
|
||
const PATH: &str = "/test"; | ||
|
||
fn create_request(server: &Server) -> RequestBuilder { | ||
Client::new().get(format!("{domain}{PATH}", domain = server.url())) | ||
} | ||
|
||
#[tokio::test] | ||
async fn given_non_digest_auth_endpoint_when_send_with_da_then_request_executed_normally() { | ||
// Given I have a GET request against a non digest auth endpoint | ||
let path = "/test"; | ||
let mock = mock("GET", path).with_status(200).create(); | ||
let request = Client::new().get(format!("{domain}{path}", domain = mockito::server_url())); | ||
let mut server = mockito::Server::new(); | ||
let mock = server.mock("GET", PATH).with_status(200).create(); | ||
let request = create_request(&server); | ||
|
||
// When I send with digest auth | ||
let response = request.send_with_digest_auth("username", "password").await.unwrap(); | ||
|
@@ -160,9 +164,9 @@ mod tests { | |
#[tokio::test] | ||
async fn given_non_digest_auth_endpoint_unauthorized_when_send_with_da_then_request_fails_with_401() { | ||
// Given I have a GET request against a non digest auth but authorized endpoint | ||
let path = "/test"; | ||
let mock = mock("GET", path).with_status(401).create(); | ||
let request = Client::new().get(format!("{domain}{path}", domain = mockito::server_url())); | ||
let mut server = mockito::Server::new(); | ||
let mock = server.mock("GET", PATH).with_status(401).create(); | ||
let request = create_request(&server); | ||
|
||
// When I send with digest auth | ||
let response = request.send_with_digest_auth("username", "password").await.unwrap(); | ||
|
@@ -175,23 +179,24 @@ mod tests { | |
#[tokio::test] | ||
async fn given_digest_auth_endpoint_authorized_when_send_with_da_then_request_succeeds() { | ||
// Given I have a GET request against a digest auth endpoint with valid 'www-authenticate' header | ||
let path = "/test"; | ||
let url = format!("{domain}{path}", domain = mockito::server_url()); | ||
let mut server = mockito::Server::new(); | ||
let www_authenticate = "Digest realm=\"[email protected]\",qop=\"auth,auth-int\",nonce=\"dcd98b7102dd2f0e8b11d0f600bfb0c093\",opaque=\"5ccc069c403ebaf9f0171e9517f40e41\""; | ||
let mut header = HeaderMap::new(); | ||
header.insert("www-authenticate", HeaderValue::from_static(www_authenticate)); | ||
let auth_header = parse_digest_auth_header(&header, path, HttpMethod::GET, None, "username", "password").unwrap(); | ||
let auth_header = parse_digest_auth_header(&header, PATH, HttpMethod::GET, None, "username", "password").unwrap(); | ||
|
||
let first_request = mock("GET", path) | ||
let first_request = server | ||
.mock("GET", PATH) | ||
.with_status(401) | ||
.with_header("www-authenticate", www_authenticate) | ||
.create(); | ||
let second_request = mock("GET", path) | ||
let second_request = server | ||
.mock("GET", PATH) | ||
.with_header("Authorization", &auth_header.to_header_string()) | ||
.with_status(200) | ||
.create(); | ||
|
||
let request = Client::new().get(url); | ||
let request = create_request(&server); | ||
|
||
// When I send with digest auth | ||
let response = request.send_with_digest_auth("username", "password").await.unwrap(); | ||
|