Skip to content

Commit 162b23d

Browse files
authored
Replace commons-lang from Jenkins core with commons-lang4 api plugin (#1093)
Move some unit test to JUnit 5
1 parent 36200b5 commit 162b23d

File tree

8 files changed

+51
-78
lines changed

8 files changed

+51
-78
lines changed

pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@
8383
<groupId>io.jenkins.plugins</groupId>
8484
<artifactId>commons-lang3-api</artifactId>
8585
</dependency>
86+
<dependency>
87+
<groupId>io.jenkins.plugins</groupId>
88+
<artifactId>commons-collections4-api</artifactId>
89+
</dependency>
8690
<dependency>
8791
<groupId>org.jenkins-ci.plugins</groupId>
8892
<artifactId>jackson2-api</artifactId>

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import java.util.Collections;
2828
import java.util.List;
2929
import java.util.Map;
30-
import org.apache.commons.collections.CollectionUtils;
30+
import org.apache.commons.collections4.CollectionUtils;
3131

3232
/**
3333
* Represents a Bitbucket repository.

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/endpoints/BitbucketEndpointConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
import jenkins.model.GlobalConfiguration;
5252
import jenkins.model.Jenkins;
5353
import net.sf.json.JSONObject;
54-
import org.apache.commons.collections.CollectionUtils;
54+
import org.apache.commons.collections4.CollectionUtils;
5555
import org.apache.commons.lang3.StringUtils;
5656
import org.kohsuke.accmod.Restricted;
5757
import org.kohsuke.accmod.restrictions.NoExternalUse;

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/hooks/BitbucketSCMSourcePushHookReceiver.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,16 @@
4949
import org.apache.commons.codec.digest.HmacAlgorithms;
5050
import org.apache.commons.codec.digest.HmacUtils;
5151
import org.apache.commons.io.IOUtils;
52-
import org.apache.commons.lang.StringUtils;
5352
import org.apache.commons.lang3.ObjectUtils;
5453
import org.jenkinsci.plugins.plaincredentials.StringCredentials;
5554
import org.kohsuke.stapler.HttpResponse;
5655
import org.kohsuke.stapler.HttpResponses.HttpResponseException;
5756
import org.kohsuke.stapler.StaplerRequest2;
5857

59-
import static org.apache.commons.lang.StringUtils.trimToNull;
58+
import static org.apache.commons.lang3.StringUtils.lowerCase;
59+
import static org.apache.commons.lang3.StringUtils.substringAfter;
60+
import static org.apache.commons.lang3.StringUtils.substringBefore;
61+
import static org.apache.commons.lang3.StringUtils.trimToNull;
6062

6163
/**
6264
* Process Bitbucket push and pull requests creations/updates hooks.
@@ -160,8 +162,8 @@ private HttpResponseException checkSignature(@NonNull StaplerRequest2 req, @NonN
160162
StringCredentials signatureCredentials = endpoint.hookSignatureCredentials();
161163
if (signatureCredentials != null) {
162164
String signatureHeader = req.getHeader("X-Hub-Signature");
163-
String bitbucketAlgorithm = trimToNull(StringUtils.substringBefore(signatureHeader, "="));
164-
String bitbucketSignature = trimToNull(StringUtils.substringAfter(signatureHeader, "="));
165+
String bitbucketAlgorithm = trimToNull(substringBefore(signatureHeader, "="));
166+
String bitbucketSignature = trimToNull(substringAfter(signatureHeader, "="));
165167
HmacAlgorithms algorithm = getAlgorithm(bitbucketAlgorithm);
166168
if (algorithm == null) {
167169
return HttpResponses.error(HttpServletResponse.SC_FORBIDDEN, "Signature " + bitbucketAlgorithm + " not supported");
@@ -191,7 +193,7 @@ private HttpResponseException checkSignature(@NonNull StaplerRequest2 req, @NonN
191193

192194
@CheckForNull
193195
private HmacAlgorithms getAlgorithm(String algorithm) {
194-
switch (StringUtils.lowerCase(algorithm)) {
196+
switch (lowerCase(algorithm)) {
195197
case "sha1":
196198
return HmacAlgorithms.HMAC_SHA_1;
197199
case "sha256":

src/main/java/com/cloudbees/jenkins/plugins/bitbucket/hooks/WebhookConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
import java.util.Set;
4848
import java.util.TreeSet;
4949
import java.util.logging.Logger;
50-
import org.apache.commons.collections.CollectionUtils;
50+
import org.apache.commons.collections4.CollectionUtils;
5151
import org.jenkinsci.plugins.plaincredentials.StringCredentials;
5252

5353
/**

src/test/java/com/cloudbees/jenkins/plugins/bitbucket/trait/TagDiscoveryTraitTest.java

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,41 +24,22 @@
2424
package com.cloudbees.jenkins.plugins.bitbucket.trait;
2525

2626
import com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSourceContext;
27-
import com.cloudbees.jenkins.plugins.bitbucket.trait.TagDiscoveryTrait;
2827
import com.cloudbees.jenkins.plugins.bitbucket.trait.TagDiscoveryTrait.TagSCMHeadAuthority;
29-
import java.util.Collections;
3028
import jenkins.scm.api.SCMHeadObserver;
31-
import jenkins.scm.api.trait.SCMHeadFilter;
32-
import jenkins.scm.api.trait.SCMHeadPrefilter;
33-
import org.hamcrest.Matcher;
34-
import org.junit.ClassRule;
35-
import org.junit.Test;
36-
import org.jvnet.hudson.test.JenkinsRule;
29+
import org.junit.jupiter.api.Test;
3730

38-
import static org.hamcrest.MatcherAssert.assertThat;
39-
import static org.hamcrest.Matchers.hasItem;
40-
import static org.hamcrest.Matchers.instanceOf;
41-
import static org.hamcrest.Matchers.is;
42-
import static org.hamcrest.Matchers.not;
43-
import static org.junit.Assume.assumeThat;
44-
45-
public class TagDiscoveryTraitTest {
46-
@ClassRule
47-
public static JenkinsRule j = new JenkinsRule();
31+
import static org.assertj.core.api.Assertions.assertThat;
4832

33+
class TagDiscoveryTraitTest {
4934
@Test
50-
public void given__discoverAll__when__appliedToContext__then__noFilter() throws Exception {
35+
void given__discoverAll__when__appliedToContext__then__noFilter() throws Exception {
5136
BitbucketSCMSourceContext ctx = new BitbucketSCMSourceContext(null, SCMHeadObserver.none());
52-
assumeThat(ctx.wantTags(), is(false));
53-
assumeThat(ctx.prefilters(), is(Collections.<SCMHeadPrefilter>emptyList()));
54-
assumeThat(ctx.filters(), is(Collections.<SCMHeadFilter>emptyList()));
55-
assumeThat(ctx.authorities(), not((Matcher) hasItem(instanceOf(TagSCMHeadAuthority.class))));
5637

5738
TagDiscoveryTrait instance = new TagDiscoveryTrait();
5839
instance.decorateContext(ctx);
59-
assertThat(ctx.wantTags(), is(true));
60-
assertThat(ctx.prefilters(), is(Collections.<SCMHeadPrefilter>emptyList()));
61-
assertThat(ctx.filters(), is(Collections.<SCMHeadFilter>emptyList()));
62-
assertThat(ctx.authorities(), (Matcher) hasItem(instanceOf(TagSCMHeadAuthority.class)));
40+
assertThat(ctx.wantTags()).isTrue();
41+
assertThat(ctx.prefilters()).isEmpty();
42+
assertThat(ctx.filters()).isEmpty();
43+
assertThat(ctx.authorities()).hasAtLeastOneElementOfType(TagSCMHeadAuthority.class);
6344
}
6445
}

src/test/java/com/cloudbees/jenkins/plugins/bitbucket/trait/WebhookConfigurationTraitTest.java

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,35 +24,30 @@
2424
package com.cloudbees.jenkins.plugins.bitbucket.trait;
2525

2626
import com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSourceContext;
27-
import com.cloudbees.jenkins.plugins.bitbucket.trait.WebhookConfigurationTrait;
2827
import jenkins.scm.api.SCMHeadObserver;
29-
import org.junit.ClassRule;
30-
import org.junit.Test;
31-
import org.jvnet.hudson.test.JenkinsRule;
28+
import org.junit.jupiter.api.Test;
3229

33-
import static org.junit.Assert.assertEquals;
34-
35-
public class WebhookConfigurationTraitTest {
36-
@ClassRule
37-
public static JenkinsRule j = new JenkinsRule();
30+
import static org.assertj.core.api.Assertions.assertThat;
31+
import static org.assertj.core.api.Assumptions.assumeThat;
3832

33+
class WebhookConfigurationTraitTest {
3934
@Test
40-
public void ignoredCommittersDefault()
41-
throws Exception {
35+
void ignoredCommittersDefault() {
4236
BitbucketSCMSourceContext ctx = new BitbucketSCMSourceContext(null, SCMHeadObserver.none());
43-
assertEquals(ctx.webhookConfiguration().getCommittersToIgnore(), null);
37+
assumeThat(ctx.webhookConfiguration().getCommittersToIgnore()).isNull();
38+
4439
WebhookConfigurationTrait instance = new WebhookConfigurationTrait("");
4540
instance.decorateContext(ctx);
46-
assertEquals(ctx.webhookConfiguration().getCommittersToIgnore(), "");
41+
assertThat(ctx.webhookConfiguration().getCommittersToIgnore()).isEmpty();
4742
}
4843

4944
@Test
50-
public void ignoredCommittersWithValue()
51-
throws Exception {
45+
void ignoredCommittersWithValue() {
5246
BitbucketSCMSourceContext ctx = new BitbucketSCMSourceContext(null, SCMHeadObserver.none());
53-
assertEquals(ctx.webhookConfiguration().getCommittersToIgnore(), null);
47+
assumeThat(ctx.webhookConfiguration().getCommittersToIgnore()).isNull();
48+
5449
WebhookConfigurationTrait instance = new WebhookConfigurationTrait("jenkins");
5550
instance.decorateContext(ctx);
56-
assertEquals(ctx.webhookConfiguration().getCommittersToIgnore(), "jenkins");
51+
assertThat(ctx.webhookConfiguration().getCommittersToIgnore()).isEqualTo("jenkins");
5752
}
5853
}

src/test/java/com/cloudbees/jenkins/plugins/bitbucket/trait/WebhookRegistrationTraitTest.java

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,49 +25,40 @@
2525

2626
import com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSourceContext;
2727
import com.cloudbees.jenkins.plugins.bitbucket.WebhookRegistration;
28-
import com.cloudbees.jenkins.plugins.bitbucket.trait.WebhookRegistrationTrait;
2928
import hudson.util.ListBoxModel;
3029
import jenkins.scm.api.SCMHeadObserver;
31-
import org.junit.ClassRule;
32-
import org.junit.Test;
33-
import org.jvnet.hudson.test.JenkinsRule;
30+
import org.apache.commons.lang3.StringUtils;
31+
import org.junit.jupiter.api.Test;
3432

35-
import static org.hamcrest.MatcherAssert.assertThat;
36-
import static org.hamcrest.Matchers.is;
37-
import static org.hamcrest.Matchers.not;
38-
import static org.junit.Assume.assumeThat;
39-
40-
public class WebhookRegistrationTraitTest {
41-
@ClassRule
42-
public static JenkinsRule j = new JenkinsRule();
33+
import static org.assertj.core.api.Assertions.assertThat;
34+
import static org.assertj.core.api.Assumptions.assumeThat;
4335

36+
class WebhookRegistrationTraitTest {
4437
@Test
45-
public void given__webhookRegistrationDisabled__when__appliedToContext__then__webhookRegistrationDisabled()
46-
throws Exception {
38+
void given__webhookRegistrationDisabled__when__appliedToContext__then__webhookRegistrationDisabled() {
4739
BitbucketSCMSourceContext ctx = new BitbucketSCMSourceContext(null, SCMHeadObserver.none());
48-
assumeThat(ctx.webhookRegistration(), is(WebhookRegistration.SYSTEM));
40+
assumeThat(ctx.webhookRegistration()).isEqualTo(WebhookRegistration.SYSTEM);
41+
4942
WebhookRegistrationTrait instance = new WebhookRegistrationTrait(WebhookRegistration.DISABLE.toString());
5043
instance.decorateContext(ctx);
51-
assertThat(ctx.webhookRegistration(), is(WebhookRegistration.DISABLE));
44+
assertThat(ctx.webhookRegistration()).isEqualTo(WebhookRegistration.DISABLE);
5245
}
5346

5447
@Test
55-
public void given__webhookRegistrationFromItem__when__appliedToContext__then__webhookRegistrationFromItem()
56-
throws Exception {
48+
void given__webhookRegistrationFromItem__when__appliedToContext__then__webhookRegistrationFromItem() {
5749
BitbucketSCMSourceContext ctx = new BitbucketSCMSourceContext(null, SCMHeadObserver.none());
58-
assumeThat(ctx.webhookRegistration(), is(WebhookRegistration.SYSTEM));
50+
assumeThat(ctx.webhookRegistration()).isEqualTo(WebhookRegistration.SYSTEM);
51+
5952
WebhookRegistrationTrait instance = new WebhookRegistrationTrait(WebhookRegistration.ITEM.toString());
6053
instance.decorateContext(ctx);
61-
assertThat(ctx.webhookRegistration(), is(WebhookRegistration.ITEM));
54+
assertThat(ctx.webhookRegistration()).isEqualTo(WebhookRegistration.ITEM);
6255
}
6356

6457
@Test
65-
public void given__descriptor__when__displayingOptions__then__SYSTEM_not_present() {
66-
ListBoxModel options =
67-
j.jenkins.getDescriptorByType(WebhookRegistrationTrait.DescriptorImpl.class).doFillModeItems();
68-
for (ListBoxModel.Option o : options) {
69-
assertThat(o.value, not(is(WebhookRegistration.SYSTEM.name())));
70-
}
58+
void given__descriptor__when__displayingOptions__then__SYSTEM_not_present() {
59+
ListBoxModel items = new WebhookRegistrationTrait.DescriptorImpl().doFillModeItems();
60+
assertThat(items).isNotEmpty()
61+
.noneMatch(el -> StringUtils.equals(el.value, WebhookRegistration.SYSTEM.name()));
7162
}
7263

7364
}

0 commit comments

Comments
 (0)