44import com .coravy .hudson .plugins .github .GithubProjectProperty ;
55import com .coravy .hudson .plugins .github .GithubUrl ;
66import hudson .XmlFile ;
7- import hudson .model .AbstractItem ;
87import hudson .model .AbstractProject ;
98import hudson .model .Action ;
109import hudson .model .ItemGroup ;
1514import org .junit .runner .RunWith ;
1615import org .kohsuke .github .GHRepository ;
1716import org .mockito .Mock ;
18- import org .powermock .api .mockito .PowerMockito ;
19- import org .powermock .core .classloader .annotations .PrepareForTest ;
20- import org .powermock .modules .junit4 .PowerMockRunner ;
17+ import org .mockito .MockedStatic ;
18+ import org .mockito .junit .MockitoJUnitRunner ;
2119
2220import edu .umd .cs .findbugs .annotations .CheckForNull ;
2321import java .io .File ;
2826
2927import static org .hamcrest .Matchers .hasSize ;
3028import static org .hamcrest .Matchers .notNullValue ;
31- import static org .jenkinsci .plugins .github .pullrequest .utils .JobHelper .ghPRTriggerFromJob ;
3229import static org .junit .Assert .assertThat ;
33- import static org .mockito .BDDMockito .given ;
3430import static org .mockito .Mockito .mock ;
31+ import static org .mockito .Mockito .mockStatic ;
3532import static org .mockito .Mockito .when ;
3633
3734/**
3835 * @author Alina_Karpovich
3936 */
40- @ RunWith (PowerMockRunner .class )
41- @ PrepareForTest ({GithubProjectProperty .class , GithubUrl .class , JobHelper .class , AbstractItem .class ,
42- GitHubPRTrigger .DescriptorImpl .class })
37+ @ RunWith (MockitoJUnitRunner .class )
4338public class GitHubPRRepositoryFactoryTest {
4439 public static final String CONFIG_PATH = "src/test/resources" ;
4540
4641 @ Mock
4742 private GHRepository ghRepository ;
4843
49- @ Mock
44+ @ Mock ( lenient = true )
5045 private ItemGroup parent ;
5146 @ Mock
5247 private Job job ;
53- @ Mock
48+ @ Mock ( lenient = true )
5449 private GitHubPRTrigger trigger ;
5550
5651 @ Mock
@@ -74,36 +69,37 @@ public void createForConfigFileIsBad() throws IOException, NoSuchFieldException,
7469 @ Test
7570 public void createForNullTrigger () {
7671// when(job.getTrigger(GitHubPRTrigger.class)).thenReturn(null);
77- PowerMockito .mockStatic (JobHelper .class );
78- given (ghPRTriggerFromJob (job ))
79- .willReturn (null );
72+ try (MockedStatic <JobHelper > mockedStatic = mockStatic (JobHelper .class )) {
73+ mockedStatic .when (() -> JobHelper .ghPRTriggerFromJob (job )).thenReturn (null );
8074
8175 Collection <? extends Action > repoCollection = new GitHubPRRepositoryFactory ().createFor (job );
8276 Assert .assertTrue (repoCollection instanceof List );
8377 Assert .assertTrue (repoCollection .isEmpty ());
78+ }
8479 }
8580
8681 @ Test
8782 public void shouldNotCreateRepoForTriggerWithExc () throws Exception {
8883// when(job.getTrigger(GitHubPRTrigger.class)).thenReturn(trigger);
89- PowerMockito .mockStatic (JobHelper .class );
90- given (ghPRTriggerFromJob (job ))
91- .willReturn (trigger );
84+ try (MockedStatic <JobHelper > mockedStatic = mockStatic (JobHelper .class )) {
85+ mockedStatic .when (() -> JobHelper .ghPRTriggerFromJob (job )).thenReturn (trigger );
9286
9387 when (parent .getFullName ()).thenReturn ("mocked job" );
9488// when(job.getParent()).thenReturn(parent);
9589 when (trigger .getRepoFullName (job )).thenThrow (new RuntimeException ());
9690
9791 assertThat (new GitHubPRRepositoryFactory ().createFor (job ), hasSize (0 ));
92+ }
9893 }
9994
10095 private void createForCommonTest (String filePath ) throws IOException , NoSuchFieldException , IllegalAccessException {
101- PowerMockito .mockStatic (GitHubPRTrigger .DescriptorImpl .class );
102- given (GitHubPRTrigger .DescriptorImpl .get ())
103- .willReturn (descriptor );
96+ try (MockedStatic <GitHubPRTrigger .DescriptorImpl > staticGitHubPRTriggerDescriptor = mockStatic (GitHubPRTrigger .DescriptorImpl .class );
97+ MockedStatic <JobHelper > staticJobHelper = mockStatic (JobHelper .class )) {
98+ staticGitHubPRTriggerDescriptor .when (GitHubPRTrigger .DescriptorImpl ::get ).thenReturn (descriptor );
99+
104100 when (descriptor .isActualiseOnFactory ()).thenReturn (false );
105101
106- createForCommonExpectations (filePath , job , trigger );
102+ createForCommonExpectations (filePath , job , trigger , staticJobHelper );
107103
108104 when (trigger .getRemoteRepository ()).thenReturn (ghRepository );
109105
@@ -113,6 +109,7 @@ private void createForCommonTest(String filePath) throws IOException, NoSuchFiel
113109
114110 Assert .assertEquals (job , trigger .getJob ());
115111 Assert .assertEquals (new File (filePath ), configFile .getFile ().getParentFile ());
112+ }
116113 }
117114
118115 @ CheckForNull
@@ -130,8 +127,8 @@ public static GitHubPRRepository getRepo(Collection<? extends Action> repoCollec
130127 * @param job mock job.
131128 * @param trigger mock trigger that is expected to be returned via job.getTrigger(GitHubPRTrigger.class).
132129 */
133- public static void createForCommonExpectations (AbstractProject <?, ?> job , GitHubPRTrigger trigger ) {
134- createForCommonExpectations (CONFIG_PATH , job , trigger );
130+ public static void createForCommonExpectations (Job job , GitHubPRTrigger trigger , MockedStatic < JobHelper > staticJobHelper ) {
131+ createForCommonExpectations (CONFIG_PATH , job , trigger , staticJobHelper );
135132 }
136133
137134 /**
@@ -143,18 +140,17 @@ public static void createForCommonExpectations(AbstractProject<?, ?> job, GitHub
143140 */
144141 public static void createForCommonExpectations (String filePath ,
145142 Job job ,
146- GitHubPRTrigger trigger ) {
147- GithubUrl githubUrl = PowerMockito .mock (GithubUrl .class );
143+ GitHubPRTrigger trigger ,
144+ MockedStatic <JobHelper > staticJobHelper ) {
145+ GithubUrl githubUrl = mock (GithubUrl .class );
148146 when (githubUrl .toString ()).thenReturn ("http://blaur" );
149- GithubProjectProperty projectProperty = PowerMockito . mock (GithubProjectProperty .class );
147+ GithubProjectProperty projectProperty = mock (GithubProjectProperty .class );
150148
151149 File file = new File (filePath );
152150 when (job .getRootDir ()).thenReturn (file );
153151 when (job .getFullName ()).thenReturn ("jobFullName" );
154152
155- PowerMockito .mockStatic (JobHelper .class );
156- given (ghPRTriggerFromJob (job ))
157- .willReturn (trigger );
153+ staticJobHelper .when (() -> JobHelper .ghPRTriggerFromJob (job )).thenReturn (trigger );
158154 when (trigger .getJob ()).thenReturn (job );
159155
160156 when (trigger .getRepoFullName (job )).thenReturn (mock (GitHubRepositoryName .class ));
0 commit comments