11package io .reflectoring ;
22
3+ import java .util .Optional ;
4+
35import au .com .dius .pact .provider .junit .Provider ;
46import au .com .dius .pact .provider .junit .State ;
57import au .com .dius .pact .provider .junit .loader .PactFolder ;
6- import au .com .dius .pact .provider .junit .target .HttpTarget ;
7- import au .com .dius .pact .provider .junit .target .Target ;
8- import au .com .dius .pact .provider .junit .target .TestTarget ;
9- import au .com .dius .pact .provider .spring .SpringRestPactRunner ;
10- import io .reflectoring .User ;
11- import io .reflectoring .UserRepository ;
12- import org .junit .runner .RunWith ;
8+ import au .com .dius .pact .provider .junit5 .HttpTestTarget ;
9+ import au .com .dius .pact .provider .junit5 .PactVerificationContext ;
10+ import au .com .dius .pact .provider .junit5 .PactVerificationInvocationContextProvider ;
11+ import org .junit .jupiter .api .BeforeEach ;
12+ import org .junit .jupiter .api .TestTemplate ;
13+ import org .junit .jupiter .api .extension .ExtendWith ;
1314import org .springframework .boot .test .context .SpringBootTest ;
1415import org .springframework .boot .test .mock .mockito .MockBean ;
15- import static org .mockito .Matchers .eq ;
16- import static org .mockito .Mockito .any ;
17- import static org .mockito .Mockito .when ;
16+ import org .springframework .test .context .junit .jupiter .SpringExtension ;
17+ import static org .mockito .ArgumentMatchers .any ;
18+ import static org .mockito .ArgumentMatchers .eq ;
19+ import static org .mockito .Mockito .*;
1820
19- @ RunWith (SpringRestPactRunner .class )
20- @ Provider ("userservice" )
21- @ PactFolder ("../pact-angular/pacts" )
21+ @ ExtendWith (SpringExtension .class )
2222@ SpringBootTest (webEnvironment = SpringBootTest .WebEnvironment .DEFINED_PORT , properties = {
23- "server.port=8080"
23+ "server.port=8080"
2424})
25+ @ Provider ("userservice" )
26+ @ PactFolder ("../pact-angular/pacts" )
2527public class UserControllerProviderTest {
2628
27- @ MockBean
28- private UserRepository userRepository ;
29-
30- @ TestTarget
31- public final Target target = new HttpTarget (8080 );
32-
33- @ State ({"provider accepts a new person" ,
34- "person 42 exists" })
35- public void toCreatePersonState () {
36- User user = new User ();
37- user .setId (42L );
38- user .setFirstName ("Arthur" );
39- user .setLastName ("Dent" );
40- when (userRepository .findOne (eq (42L ))).thenReturn (user );
41- when (userRepository .save (any (User .class ))).thenReturn (user );
42- }
29+ @ MockBean
30+ private UserRepository userRepository ;
31+
32+ @ BeforeEach
33+ void setupTestTarget (PactVerificationContext context ) {
34+ context .setTarget (new HttpTestTarget ("localhost" , 8080 , "/" ));
35+ }
36+
37+ @ TestTemplate
38+ @ ExtendWith (PactVerificationInvocationContextProvider .class )
39+ void pactVerificationTestTemplate (PactVerificationContext context ) {
40+ context .verifyInteraction ();
41+ }
42+
43+ @ State ({"provider accepts a new person" ,
44+ "person 42 exists" })
45+ public void toCreatePersonState () {
46+ User user = new User ();
47+ user .setId (42L );
48+ user .setFirstName ("Arthur" );
49+ user .setLastName ("Dent" );
50+ when (userRepository .findById (eq (42L ))).thenReturn (Optional .of (user ));
51+ when (userRepository .save (any (User .class ))).thenReturn (user );
52+ }
4353
4454}
0 commit comments