1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
mod interaction_builder;
mod http_part_builder;
mod pact_builder;
mod request_builder;
mod response_builder;
pub use self::interaction_builder::*;
pub use self::http_part_builder::*;
pub use self::pact_builder::*;
pub use self::request_builder::*;
pub use self::response_builder::*;
#[test]
fn basic_builder_example() {
let pact = PactBuilder::new("Consumer", "Provider")
.interaction("GET /greeting/hello", |i| {
i.given("a greeting named hello");
i.request.method("GET").path("/greeting/hello");
i.response
.status(200)
.header("Content-Type", "application/json")
.json_body(json_pattern!({
"message": "Hello!",
}));
})
.build();
assert_eq!(pact.consumer.name, "Consumer");
assert_eq!(pact.provider.name, "Provider");
assert_eq!(pact.interactions.len(), 1);
let interaction = &pact.interactions[0];
assert_eq!(&interaction.description, "GET /greeting/hello");
assert_eq!(interaction.provider_states[0].name, "a greeting named hello");
}