#mocking #wiremock #http #testing

wiremock_logical_matchers

Logical matchers for use with wiremock

7 releases

0.6.0 Feb 21, 2024
0.5.1 Jan 14, 2024
0.5.0 Dec 31, 2023
0.1.3 Oct 13, 2023
0.1.1 Jul 4, 2023

#249 in Asynchronous

Download history 2/week @ 2024-01-22 193/week @ 2024-01-29 404/week @ 2024-02-05 176/week @ 2024-02-12 160/week @ 2024-02-19 82/week @ 2024-02-26 1234/week @ 2024-03-04 621/week @ 2024-03-11 139/week @ 2024-03-18 170/week @ 2024-03-25 340/week @ 2024-04-01 703/week @ 2024-04-08 544/week @ 2024-04-15 265/week @ 2024-04-22 347/week @ 2024-04-29 574/week @ 2024-05-06

1,876 downloads per month
Used in mini_exercism

MIT license

15KB
121 lines

wiremock_logical_matchers

CI codecov Security audit crates.io downloads docs.rs Contributor Covenant

Additional matchers for wiremock that implement logical operators (AND, OR, XOR, NOT).

Installing

Add wiremock_logical_matchers to your development dependencies:

[dev-dependencies]
wiremock = "0.6.0"
wiremock_logical_matchers = "0.6.0"

or by running:

cargo add wiremock_logical_matchers --dev

Getting started

use wiremock::{Mock, MockServer, ResponseTemplate};
use wiremock::matchers::{header, header_exists, path, query_param};
use wiremock_logical_matchers::{and, not, or, xor};

#[tokio::test]
async fn test_getting_started() {
    let mock_server = MockServer::start().await;

    Mock::given(path("/test"))
        .and(
            and(
                header_exists("x-for-testing-purposes"),
                query_param("page", "1")
            )
        ).and(
            or(
                header("authorization", "Bearer some_token"),
                query_param("override-security", "1")
            )
        ).and(
            xor(
                header("x-license", "MIT"),
                header("x-license-file", "LICENSE")
            )
        ).and(
            not(
                header_exists("x-necronomicon")
            )
        ).respond_with(ResponseTemplate::new(200))
        .mount(&mock_server)
        .await;

    // ...
}

See also

wiremock on crates.io

Dependencies

~9–22MB
~308K SLoC