Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate tests to JUnit5 #389

Merged
merged 3 commits into from
Mar 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>5.4</version>
<version>5.8</version>
<relativePath />
</parent>

Expand Down Expand Up @@ -62,7 +62,7 @@
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-${jenkins.baseline}.x</artifactId>
<version>3850.vb_c5319efa_e29</version>
<version>4136.vca_c3202a_7fd1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.michelin.cio.hudson.plugins.rolestrategy;

import static org.junit.Assert.assertFalse;
import static org.junit.jupiter.api.Assertions.assertFalse;

import hudson.model.User;
import hudson.security.ACL;
Expand All @@ -11,17 +11,15 @@
import java.util.HashSet;
import java.util.Map;
import jenkins.model.Jenkins;
import org.junit.Rule;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;

public class GrantingDisabledPermissionTest {

@Rule
public JenkinsRule r = new JenkinsRule();
@WithJenkins
class GrantingDisabledPermissionTest {

@Test
public void grantDisabledPermissionTest() throws Exception {
void grantDisabledPermissionTest(JenkinsRule r) throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(true, false, null);
realm.createAccount("admin", "admin");
realm.createAccount("alice", "alice");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,34 @@
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import hudson.security.Permission;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.junit.Test;
import org.junit.jupiter.api.Test;

public class RoleTest {
class RoleTest {

@Test
public void testHasPermission() {
void testHasPermission() {
Role role = new Role("name", new HashSet<>(Arrays.asList(Permission.CREATE, Permission.READ, Permission.DELETE)));
assertTrue(role.hasPermission(Permission.READ));
assertFalse(role.hasPermission(Permission.WRITE));
}

@Test
public void testHasAnyPermissions() {
void testHasAnyPermissions() {
Role role = new Role("name", new HashSet<>((Arrays.asList(Permission.READ, Permission.DELETE))));
assertTrue(role.hasAnyPermission(new HashSet<>(Arrays.asList(Permission.READ, Permission.WRITE))));
assertFalse(role.hasAnyPermission(new HashSet<>(Arrays.asList(Permission.UPDATE, Permission.WRITE))));
}

@Test
public void shouldNotAddNullPermToNewRole() {
void shouldNotAddNullPermToNewRole() {
Permission permission = Permission.CREATE;
Permission nullPerm = null;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,30 @@

import hudson.model.FreeStyleProject;
import org.htmlunit.html.HtmlPage;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.JenkinsRule.DummySecurityRealm;
import org.jvnet.hudson.test.JenkinsRule.WebClient;
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.jvnet.hudson.test.recipes.LocalData;

public class ContainedInViewTest {
@Rule
public JenkinsRule jenkinsRule = new JenkinsRule();
@WithJenkins
class ContainedInViewTest {

@Before
private JenkinsRule jenkinsRule;

@BeforeEach
@LocalData
public void setup() throws Exception {
void setup(JenkinsRule jenkinsRule) throws Exception {
this.jenkinsRule = jenkinsRule;
DummySecurityRealm sr = jenkinsRule.createDummySecurityRealm();
jenkinsRule.jenkins.setSecurityRealm(sr);
}

@Test
@LocalData
public void userCanAccessJobInRootView() throws Exception {
void userCanAccessJobInRootView() throws Exception {
FreeStyleProject project = jenkinsRule.jenkins.getItemByFullName("testJob", FreeStyleProject.class);
WebClient wc = jenkinsRule.createWebClient();
wc.withThrowExceptionOnFailingStatusCode(false);
Expand All @@ -37,7 +39,7 @@ public void userCanAccessJobInRootView() throws Exception {

@Test
@LocalData
public void userCantAccessJobNotInRootView() throws Exception {
void userCantAccessJobNotInRootView() throws Exception {
FreeStyleProject project = jenkinsRule.jenkins.getItemByFullName("hiddenJob", FreeStyleProject.class);
WebClient wc = jenkinsRule.createWebClient();
wc.withThrowExceptionOnFailingStatusCode(false);
Expand All @@ -48,7 +50,7 @@ public void userCantAccessJobNotInRootView() throws Exception {

@Test
@LocalData
public void userCanAccessJobInFolderView() throws Exception {
void userCanAccessJobInFolderView() throws Exception {
FreeStyleProject project = jenkinsRule.jenkins.getItemByFullName("folder/testjob2", FreeStyleProject.class);
WebClient wc = jenkinsRule.createWebClient();
wc.withThrowExceptionOnFailingStatusCode(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,12 @@

package com.synopsys.arc.jenkins.plugins.rolestrategy;

import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.fail;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

/**
* Contains tests for Macro.
Expand All @@ -34,10 +38,10 @@
* @since 2.1.0
* @author Oleg Nenashev
*/
public class MacroTest {
class MacroTest {

@Test
public void correctFormatsSanityCheck() {
void correctFormatsSanityCheck() {
parseMacro("@Dummy");
parseMacro("@Dummy:1");
parseMacro("@Dummy(aaa)");
Expand All @@ -47,7 +51,7 @@ public void correctFormatsSanityCheck() {
}

@Test
public void testValidUsers() {
void testValidUsers() {
parseWrongMacro("test", MacroExceptionCode.Not_Macro);
parseWrongMacro("logged_user", MacroExceptionCode.Not_Macro);
parseWrongMacro("anonymous", MacroExceptionCode.Not_Macro);
Expand All @@ -56,7 +60,7 @@ public void testValidUsers() {
}

@Test
public void testWrongBrackets() {
void testWrongBrackets() {
parseWrongMacro("@test:1(aaa,bbb(", MacroExceptionCode.WrongFormat);
parseWrongMacro("@test:1(aaa,bbb(", MacroExceptionCode.WrongFormat);
parseWrongMacro("@test:1()(aaa,bbb)", MacroExceptionCode.WrongFormat);
Expand All @@ -66,12 +70,12 @@ public void testWrongBrackets() {
}

@Test
public void err_WrongEnding() {
void err_WrongEnding() {
parseWrongMacro("@test:1(aaa,bbb)error", MacroExceptionCode.WrongFormat);
}

@Test
public void err_Quotes() {
void err_Quotes() {
parseWrongMacro("@test':1(aaa,bbb)", MacroExceptionCode.WrongFormat);
parseWrongMacro("@'test':1(aaa,bbb)", MacroExceptionCode.WrongFormat);
parseWrongMacro("@test:1('aaa',bbb)", MacroExceptionCode.WrongFormat);
Expand All @@ -85,13 +89,13 @@ public void err_Quotes() {
}

@Test
public void emptyParameters() {
void emptyParameters() {
parseMacro("@Dummy()");
parseMacro("@Dummy:1()");
}

@Test
public void test_MacroSanity() {
void test_MacroSanity() {
testCycle("test1", null, null);
testCycle("test2", 1, null);
testCycle("test3", -1, null);
Expand All @@ -114,13 +118,13 @@ private static void testCycle(String macroName, Integer macroId, String[] parame
}

private static void assertEquals(Macro expected, Macro actual) {
Assert.assertEquals("Wrong name", expected.getName(), expected.getName());
Assert.assertEquals("Wrong index", expected.getIndex(), expected.getIndex());
Assertions.assertEquals(expected.getName(), actual.getName(), "Wrong name");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we statically import the assertEquals and use it like that in this file. Then we're in sync with all other files how to import the Assertions

Copy link
Contributor Author

@strangelookingnerd strangelookingnerd Mar 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't since it would ambiguous with the surrounding method MacroTest#assertEquals(Macro, Macro)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a right

Assertions.assertEquals(expected.getIndex(), actual.getIndex(), "Wrong index");

if (expected.hasParameters()) {
Assert.assertArrayEquals("Wrong parameters set", expected.getParameters(), actual.getParameters());
assertArrayEquals(expected.getParameters(), actual.getParameters(), "Wrong parameters set");
} else {
Assert.assertFalse("Actual macro shouldn't have parameters", actual.hasParameters());
assertFalse(actual.hasParameters(), "Actual macro shouldn't have parameters");
}
}

Expand All @@ -132,15 +136,15 @@ private static Macro assertParseMacroDriver(String errorMessage, String macroStr
} catch (MacroException ex) {
ex.printStackTrace();
if (expectException) {
Assert.assertEquals(errorMessage + ". Wrong error code", expectedError, ex.getErrorCode());
Assertions.assertEquals(expectedError, ex.getErrorCode(), errorMessage + ". Wrong error code");
} else {
Assert.fail(errorMessage + ". Got Macro Exception: " + ex.getMessage());
fail(errorMessage + ". Got Macro Exception: " + ex.getMessage());
}
return res;
}

if (expectException) {
Assert.fail(errorMessage + ". Haven't got exception. Expected code is " + expectedError);
fail(errorMessage + ". Haven't got exception. Expected code is " + expectedError);
}
return res;
}
Expand Down
6 changes: 3 additions & 3 deletions src/test/java/jmh/BenchmarkRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

import java.util.concurrent.TimeUnit;
import jenkins.benchmark.jmh.BenchmarkFinder;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.results.format.ResultFormatType;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.options.ChainedOptionsBuilder;
import org.openjdk.jmh.runner.options.OptionsBuilder;

public final class BenchmarkRunner {
class BenchmarkRunner {
@Test
public void runJmhBenchmarks() throws Exception {
void runJmhBenchmarks() throws Exception {
ChainedOptionsBuilder options = new OptionsBuilder()
.mode(Mode.AverageTime)
.warmupIterations(2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,26 @@
import org.jenkinsci.plugins.authorizeproject.AuthorizeProjectProperty;
import org.jenkinsci.plugins.authorizeproject.ProjectQueueItemAuthenticator;
import org.jenkinsci.plugins.authorizeproject.strategy.TriggeringUsersAuthorizationStrategy;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.JenkinsRule.DummySecurityRealm;
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.jvnet.hudson.test.recipes.LocalData;

public class AuthorizeProjectTest {
@WithJenkins
class AuthorizeProjectTest {

@Rule
public JenkinsRule jenkinsRule = new JenkinsRule();
private JenkinsRule jenkinsRule;

private Slave node;
private FreeStyleProject project;
private AuthorizationCheckBuilder checker;

@Before
@BeforeEach
@LocalData
public void setup() throws Exception {
void setup(JenkinsRule jenkinsRule) throws Exception {
this.jenkinsRule = jenkinsRule;
QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new ProjectQueueItemAuthenticator(Collections.emptyMap()));
node = jenkinsRule.createSlave("TestAgent", null, null);
jenkinsRule.waitOnline(node);
Expand All @@ -62,7 +63,7 @@ public void setup() throws Exception {

@Test
@LocalData
public void agentBuildPermissionsAllowsToBuildOnAgent() throws Exception {
void agentBuildPermissionsAllowsToBuildOnAgent() throws Exception {
try (ACLContext c = ACL.as(User.getById("tester", true))) {
project.scheduleBuild2(0, new Cause.UserIdCause());
}
Expand All @@ -75,7 +76,7 @@ public void agentBuildPermissionsAllowsToBuildOnAgent() throws Exception {

@Test
@LocalData
public void missingAgentBuildPermissionsBlockBuild() throws Exception {
void missingAgentBuildPermissionsBlockBuild() throws Exception {
try (ACLContext c = ACL.as(User.getById("reader", true))) {
project.scheduleBuild2(0, new Cause.UserIdCause());
}
Expand All @@ -102,7 +103,7 @@ public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListen
}

public static class DescriptorImpl extends BuildStepDescriptor<Builder> {
@SuppressWarnings("rawtypes")

@Override
public boolean isApplicable(Class<? extends AbstractProject> jobType) {
return true;
Expand Down
Loading
Loading