1
1
package io .reflectoring ;
2
2
3
+ import java .util .Optional ;
4
+
3
5
import au .com .dius .pact .provider .junit .Provider ;
4
6
import au .com .dius .pact .provider .junit .State ;
5
7
import 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 ;
13
14
import org .springframework .boot .test .context .SpringBootTest ;
14
15
import 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 .*;
18
20
19
- @ RunWith (SpringRestPactRunner .class )
20
- @ Provider ("userservice" )
21
- @ PactFolder ("../pact-angular/pacts" )
21
+ @ ExtendWith (SpringExtension .class )
22
22
@ SpringBootTest (webEnvironment = SpringBootTest .WebEnvironment .DEFINED_PORT , properties = {
23
- "server.port=8080"
23
+ "server.port=8080"
24
24
})
25
+ @ Provider ("userservice" )
26
+ @ PactFolder ("../pact-angular/pacts" )
25
27
public class UserControllerProviderTest {
26
28
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
+ }
43
53
44
54
}
0 commit comments