Skip to content

Commit

Permalink
Update dependencies 2023 08 17 (#12)
Browse files Browse the repository at this point in the history
* Update url to 2.4

* Update mockito to next major 1.1

* Update mockito in blocking module

* Simplify tests
  • Loading branch information
maoertel authored Aug 17, 2023
1 parent 10cdddf commit 9ba617d
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 37 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ rustls-tls = ["reqwest/rustls-tls"]
async-trait = "0.1"
digest_auth = "0.3"
reqwest = { version = "0.11", default-features = false }
url = "2.3"
url = "2.4"

[dev-dependencies]
tokio = { version = "1", features = ["full"] }
mockito = "0.31"
mockito = "1.1"
41 changes: 23 additions & 18 deletions src/blocking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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();
Expand All @@ -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();
Expand Down
39 changes: 22 additions & 17 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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();
Expand All @@ -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();
Expand Down

0 comments on commit 9ba617d

Please sign in to comment.