22
33import org .junit .jupiter .api .extension .ExtendWith ;
44import au .com .dius .pact .consumer .MockServer ;
5- import au .com .dius .pact .core .model .RequestResponsePact ;
5+ import au .com .dius .pact .core .model .V4Pact ;
66import au .com .dius .pact .core .model .annotations .Pact ;
7- import au .com .dius .pact .consumer .dsl .PactDslJsonArray ;
7+ import au .com .dius .pact .consumer .dsl .PactBuilder ;
88import au .com .dius .pact .consumer .dsl .PactDslJsonBody ;
9- import au .com .dius .pact .consumer .dsl .PactDslWithProvider ;
109import au .com .dius .pact .consumer .junit5 .PactConsumerTestExt ;
1110import au .com .dius .pact .consumer .junit5 .PactTestFor ;
1211import org .junit .jupiter .api .Test ;
13- import au .com .dius .pact .core .model .PactSpecVersion ; // required for v4.6.x to set pactVersion
12+ import au .com .dius .pact .core .model .PactSpecVersion ;
1413
1514import java .io .IOException ;
16- import java .util .List ;
1715
1816import static org .hamcrest .MatcherAssert .assertThat ;
1917import static org .hamcrest .Matchers .is ;
2321public class ProductsPactTest {
2422
2523 @ Pact (consumer ="pactflow-example-consumer-java-junit" )
26- public RequestResponsePact getProduct (PactDslWithProvider builder ) {
24+ public V4Pact getProduct (PactBuilder builder ) {
2725
2826 PactDslJsonBody body = new PactDslJsonBody ();
2927 body .stringType ("name" , "product name" );
3028 body .stringType ("type" , "product series" );
3129 body .stringType ("id" , "5cc989d0-d800-434c-b4bb-b1268499e850" );
3230
3331 return builder
32+ .usingLegacyDsl ()
33+ .addMetadataValue ("matt" , "rocks" )
3434 .given ("a product with ID 10 exists" )
3535 .uponReceiving ("a request to get a product" )
3636 .path ("/product/10" )
3737 .method ("GET" )
3838 .willRespondWith ()
3939 .status (200 )
4040 .body (body )
41- .toPact ();
41+ .toPact (V4Pact . class );
4242 }
4343
44- @ PactTestFor (pactMethod = "getProduct" , pactVersion = PactSpecVersion .V3 )
44+ @ PactTestFor (pactMethod = "getProduct" , pactVersion = PactSpecVersion .V4 )
4545 @ Test
4646 public void testGetProduct (MockServer mockServer ) throws IOException {
4747 Product product = new ProductClient ().setUrl (mockServer .getUrl ()).getProduct ("10" );
4848
4949 assertThat (product .getId (), is ("5cc989d0-d800-434c-b4bb-b1268499e850" ));
5050 }
51-
52- @ Pact (consumer ="pactflow-example-consumer-java-junit" )
53- public RequestResponsePact getProducts (PactDslWithProvider builder ) {
54- return builder
55- .given ("a product with ID 10 exists" )
56- .uponReceiving ("a request to get all products" )
57- .path ("/products" )
58- .method ("GET" )
59- .willRespondWith ()
60- .status (200 )
61- .body (PactDslJsonArray .arrayEachLike ()
62- .stringType ("name" , "product name" )
63- .stringType ("type" , "product series" )
64- .stringType ("id" , "5cc989d0-d800-434c-b4bb-b1268499e850" )
65- .closeObject ())
66- .toPact ();
67- }
68-
69- @ PactTestFor (pactMethod = "getProducts" , pactVersion = PactSpecVersion .V3 )
70- @ Test
71- public void testGetProducts (MockServer mockServer ) throws IOException {
72- List <Product > products = new ProductClient ().setUrl (mockServer .getUrl ()).getProducts ();
73-
74- assertThat (products .get (0 ).getId (), is ("5cc989d0-d800-434c-b4bb-b1268499e850" ));
75- }
7651}
0 commit comments