actual = ConfigurationAsCode.get().checkWith(input);
@@ -221,7 +212,7 @@ public class ConfigurationAsCodeTest {
}
@Test
- public void doReplace_should_trim_input() throws Exception {
+ void doReplace_should_trim_input(JenkinsConfiguredWithCodeRule j) throws Exception {
HtmlPage page = j.createWebClient().goTo("configuration-as-code");
j.assertGoodStatus(page);
@@ -236,7 +227,7 @@ public class ConfigurationAsCodeTest {
}
@Test
- public void doReplace_should_support_multiple_sources() throws Exception {
+ void doReplace_should_support_multiple_sources(JenkinsConfiguredWithCodeRule j) throws Exception {
HtmlPage page = j.createWebClient().goTo("configuration-as-code");
j.assertGoodStatus(page);
@@ -256,7 +247,7 @@ public class ConfigurationAsCodeTest {
@Test
@ConfiguredWithCode("admin.yml")
- public void doViewExport_should_require_authentication() throws Exception {
+ void doViewExport_should_require_authentication(JenkinsConfiguredWithCodeRule j) throws Exception {
WebClient client = j.createWebClient();
WebRequest request = new WebRequest(client.createCrumbedUrl("configuration-as-code/viewExport"), POST);
WebResponse response = client.loadWebResponse(request);
@@ -269,7 +260,7 @@ public class ConfigurationAsCodeTest {
@Test
@Issue("Issue #739")
- public void preferEnvOverGlobalConfigForConfigPath() throws Exception {
+ void preferEnvOverGlobalConfigForConfigPath(JenkinsConfiguredWithCodeRule j) throws Exception {
String firstConfig = getClass().getResource("JenkinsConfigTest.yml").toExternalForm();
String secondConfig = getClass().getResource("merge3.yml").toExternalForm();
CasCGlobalConfig descriptor = (CasCGlobalConfig) j.jenkins.getDescriptor(CasCGlobalConfig.class);
@@ -283,22 +274,23 @@ public class ConfigurationAsCodeTest {
System.clearProperty(CASC_JENKINS_CONFIG_PROPERTY);
}
+ // file names matter for order!
@Test
- @ConfiguredWithCode(value = {"aNonEmpty.yml", "empty.yml"}) // file names matter for order!
- public void test_non_first_yaml_file_empty() {
+ @ConfiguredWithCode(value = {"aNonEmpty.yml", "empty.yml"})
+ void test_non_first_yaml_file_empty(JenkinsConfiguredWithCodeRule j) {
assertEquals("Configured by Configuration as Code plugin", j.jenkins.getSystemMessage());
}
@Test
@Issue("Issue #914")
- public void isSupportedURI_should_not_throw_on_invalid_uri() {
+ void isSupportedURI_should_not_throw_on_invalid_uri() {
// for example, a Windows path is not a valid URI
assertThat(ConfigurationAsCode.isSupportedURI("C:\\jenkins\\casc"), is(false));
}
@Test
@ConfiguredWithCode("multi-line1.yml")
- public void multiline_literal_stays_literal_in_export() throws Exception {
+ void multiline_literal_stays_literal_in_export(JenkinsConfiguredWithCodeRule j) throws Exception {
assertEquals(
"Welcome to our build server.\n\n" + "This Jenkins is 100% configured and managed 'as code'.\n",
j.jenkins.getSystemMessage());
@@ -315,7 +307,7 @@ public class ConfigurationAsCodeTest {
@Test
@ConfiguredWithCode("multi-line2.yml")
- public void string_to_literal_in_export() throws Exception {
+ void string_to_literal_in_export(JenkinsConfiguredWithCodeRule j) throws Exception {
assertEquals(
"Welcome to our build server.\n\n" + "This Jenkins is 100% configured and managed 'as code'.\n",
j.jenkins.getSystemMessage());
@@ -331,7 +323,7 @@ public class ConfigurationAsCodeTest {
}
@Test
- public void testHtmlDocStringRetrieval() throws Exception {
+ void testHtmlDocStringRetrieval(JenkinsConfiguredWithCodeRule j) throws Exception {
String expectedDocString = "\n"
+ " If checked, this will allow users who are not authenticated to access Jenkins\n in a read-only mode.\n"
+ "
\n";
@@ -341,8 +333,25 @@ public class ConfigurationAsCodeTest {
}
@Test
- public void configurationCategory() {
+ void configurationCategory(JenkinsConfiguredWithCodeRule j) {
ConfigurationAsCode configurationAsCode = ConfigurationAsCode.get();
assertThat(configurationAsCode.getCategoryName(), is("CONFIGURATION"));
}
+
+ private static File newFolder(File root, String... subDirs) throws IOException {
+ String subFolder = String.join("/", subDirs);
+ File result = new File(root, subFolder);
+ if (!result.mkdirs()) {
+ throw new IOException("Couldn't create folders " + result);
+ }
+ return result;
+ }
+
+ private static File newFile(File root, String fileName) throws IOException {
+ File result = new File(root, fileName);
+ if (!result.createNewFile()) {
+ throw new IOException("Couldn't create file " + result);
+ }
+ return result;
+ }
}
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/SampleBenchmark.java b/test-harness/src/test/java/io/jenkins/plugins/casc/SampleBenchmark.java
index c2722826..1f8543d9 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/SampleBenchmark.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/SampleBenchmark.java
@@ -1,6 +1,6 @@
package io.jenkins.plugins.casc;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import edu.umd.cs.findbugs.annotations.NonNull;
import io.jenkins.plugins.casc.misc.jmh.CascJmhBenchmarkState;
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationSanitisationTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationSanitisationTest.java
index c7428438..65d08d80 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationSanitisationTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationSanitisationTest.java
@@ -2,19 +2,17 @@ package io.jenkins.plugins.casc;
import static io.jenkins.plugins.casc.SchemaGeneration.removeHtmlTags;
import static io.jenkins.plugins.casc.SchemaGeneration.retrieveDocStringFromAttribute;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
-import org.junit.Rule;
-import org.junit.Test;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
+import org.junit.jupiter.api.Test;
-public class SchemaGenerationSanitisationTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class SchemaGenerationSanitisationTest {
@Test
- public void testRetrieveDocStringFromAttribute() {
+ void testRetrieveDocStringFromAttribute(JenkinsConfiguredWithCodeRule j) {
String expectedDocString =
"If checked, this will allow users who are not authenticated to access Jenkins\n in a read-only mode.";
String actualDocString = retrieveDocStringFromAttribute(
@@ -23,7 +21,7 @@ public class SchemaGenerationSanitisationTest {
}
@Test
- public void testRemoveHtmlTagRegex() {
+ void testRemoveHtmlTagRegex(JenkinsConfiguredWithCodeRule j) {
String htmlTagString =
" If checked, this will allow users who are not authenticated to access Jenkins in a read-only mode.
";
String expectedString =
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationTest.java
index 2fef3b3a..b93d76ac 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/SchemaGenerationTest.java
@@ -7,50 +7,48 @@ import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.empty;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
-import org.junit.Rule;
-import org.junit.Test;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
+import org.junit.jupiter.api.Test;
-public class SchemaGenerationTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class SchemaGenerationTest {
@Test
- public void validSchemaShouldSucceed() throws Exception {
+ void validSchemaShouldSucceed(JenkinsConfiguredWithCodeRule j) throws Exception {
assertThat(validateSchema(convertYamlFileToJson(this, "validSchemaConfig.yml")), empty());
}
@Test
- public void invalidSchemaShouldNotSucceed() throws Exception {
+ void invalidSchemaShouldNotSucceed(JenkinsConfiguredWithCodeRule j) throws Exception {
assertThat(
validateSchema(convertYamlFileToJson(this, "invalidSchemaConfig.yml")),
contains("#/jenkins/numExecutors: expected type: Integer, found: String"));
}
@Test
- public void rejectsInvalidBaseConfigurator() throws Exception {
+ void rejectsInvalidBaseConfigurator(JenkinsConfiguredWithCodeRule j) throws Exception {
assertThat(
validateSchema(convertYamlFileToJson(this, "invalidBaseConfig.yml")),
contains("#: extraneous key [invalidBaseConfigurator] is not permitted"));
}
@Test
- public void validJenkinsBaseConfigurator() throws Exception {
+ void validJenkinsBaseConfigurator(JenkinsConfiguredWithCodeRule j) throws Exception {
assertThat(validateSchema(convertYamlFileToJson(this, "validJenkinsBaseConfig.yml")), empty());
}
@Test
- public void symbolResolutionForJenkinsBaseConfigurator() throws Exception {
+ void symbolResolutionForJenkinsBaseConfigurator(JenkinsConfiguredWithCodeRule j) throws Exception {
assertThat(validateSchema(convertYamlFileToJson(this, "validJenkinsBaseConfigWithSymbol.yml")), empty());
}
@Test
- public void validSelfConfigurator() throws Exception {
+ void validSelfConfigurator(JenkinsConfiguredWithCodeRule j) throws Exception {
assertThat(validateSchema(convertYamlFileToJson(this, "validSelfConfig.yml")), empty());
}
@Test
- public void attributesNotFlattenedToTopLevel() throws Exception {
+ void attributesNotFlattenedToTopLevel(JenkinsConfiguredWithCodeRule j) throws Exception {
assertThat(
validateSchema(convertYamlFileToJson(this, "attributesNotFlattenedToTop.yml")),
contains("#/tool: extraneous key [acceptLicense] is not permitted"));
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/Security1290Test.java b/test-harness/src/test/java/io/jenkins/plugins/casc/Security1290Test.java
index 81e8a989..5c935a42 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/Security1290Test.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/Security1290Test.java
@@ -1,26 +1,24 @@
package io.jenkins.plugins.casc;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import jenkins.model.Jenkins;
import org.htmlunit.HttpMethod;
import org.htmlunit.WebRequest;
-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.MockAuthorizationStrategy;
-public class Security1290Test {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class Security1290Test {
@Test
- public void configurationAsCodePagesPermissions() throws Exception {
+ void configurationAsCodePagesPermissions(JenkinsConfiguredWithCodeRule j) throws Exception {
final String ADMIN = "admin";
final String USER = "user";
@@ -40,12 +38,16 @@ public class Security1290Test {
JenkinsRule.WebClient userWc = j.createWebClient().withThrowExceptionOnFailingStatusCode(false);
userWc.login(USER);
- assertRightPermissionConfigurations("configuration-as-code/schema", adminWc, userWc);
- assertRightPermissionConfigurations("configuration-as-code/reference", adminWc, userWc);
+ assertRightPermissionConfigurations(j, "configuration-as-code/schema", adminWc, userWc);
+ assertRightPermissionConfigurations(j, "configuration-as-code/reference", adminWc, userWc);
}
private void assertRightPermissionConfigurations(
- String relativeUrl, JenkinsRule.WebClient adminWc, JenkinsRule.WebClient userWc) throws IOException {
+ JenkinsConfiguredWithCodeRule j,
+ String relativeUrl,
+ JenkinsRule.WebClient adminWc,
+ JenkinsRule.WebClient userWc)
+ throws IOException {
WebRequest request = new WebRequest(new URL(j.getURL() + relativeUrl), HttpMethod.GET);
assertEquals(
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/YamlReaderTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/YamlReaderTest.java
index df8f92f1..fc3b083e 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/YamlReaderTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/YamlReaderTest.java
@@ -3,9 +3,11 @@ package io.jenkins.plugins.casc;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.htmlunit.HttpMethod.POST;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import io.jenkins.plugins.casc.yaml.YamlSource;
import io.jenkins.plugins.casc.yaml.YamlUtils;
import java.io.IOException;
@@ -16,21 +18,18 @@ import java.text.MessageFormat;
import jenkins.model.Jenkins;
import org.htmlunit.FailingHttpStatusCodeException;
import org.htmlunit.WebRequest;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-public class YamlReaderTest {
+@WithJenkinsConfiguredWithCode
+class YamlReaderTest {
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
-
- @Test(expected = IOException.class)
- public void unknownReader() throws IOException {
- YamlUtils.reader(new YamlSource<>(new StringBuilder()));
+ @Test
+ void unknownReader(JenkinsConfiguredWithCodeRule j) {
+ assertThrows(IOException.class, () -> YamlUtils.reader(new YamlSource<>(new StringBuilder())));
}
@Test
- public void folder() throws Exception {
+ void folder(JenkinsConfiguredWithCodeRule j) throws Exception {
String p =
Paths.get(getClass().getResource("./folder").toURI()).toFile().getAbsolutePath();
ConfigurationAsCode.get().configure(p);
@@ -40,7 +39,7 @@ public class YamlReaderTest {
}
@Test
- public void httpDoApply() throws Exception {
+ void httpDoApply(JenkinsConfiguredWithCodeRule j) throws Exception {
j.jenkins.setCrumbIssuer(null);
URL apiURL = new URL(MessageFormat.format(
@@ -58,7 +57,7 @@ public class YamlReaderTest {
}
@Test
- public void httpDoCheck() throws Exception {
+ void httpDoCheck(JenkinsConfiguredWithCodeRule j) throws Exception {
j.jenkins.setCrumbIssuer(null);
URL apiURL = new URL(MessageFormat.format(
@@ -72,15 +71,15 @@ public class YamlReaderTest {
assertThat(response, is(200));
}
- @Test(expected = FailingHttpStatusCodeException.class)
- public void httpDoCheckFailure() throws Exception {
+ @Test
+ void httpDoCheckFailure(JenkinsConfiguredWithCodeRule j) throws Exception {
j.jenkins.setCrumbIssuer(null);
-
URL apiURL = new URL(MessageFormat.format(
"{0}configuration-as-code/check", j.getURL().toString()));
WebRequest request = new WebRequest(apiURL, POST);
request.setCharset(StandardCharsets.UTF_8);
request.setRequestBody("jenkins:\n" + " systemMessage: {}");
- j.createWebClient().getPage(request);
+ assertThrows(
+ FailingHttpStatusCodeException.class, () -> j.createWebClient().getPage(request));
}
}
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorCloudSupportTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorCloudSupportTest.java
index 2c9e9e40..e4c3708e 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorCloudSupportTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorCloudSupportTest.java
@@ -5,8 +5,8 @@ import static io.jenkins.plugins.casc.misc.Util.toYamlString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.not;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import hudson.Extension;
import hudson.model.Descriptor;
@@ -20,25 +20,23 @@ import io.jenkins.plugins.casc.ConfigurationContext;
import io.jenkins.plugins.casc.ConfiguratorRegistry;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import io.jenkins.plugins.casc.model.CNode;
import java.io.IOException;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.PretendSlave;
-public class JenkinsConfiguratorCloudSupportTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class JenkinsConfiguratorCloudSupportTest {
@Test
@ConfiguredWithCode("JenkinsConfiguratorCloudSupportTest.yml")
- public void should_have_nodes_configured() {
- assertEquals("Base nodes not found", 2, j.jenkins.getNodes().size());
+ void should_have_nodes_configured(JenkinsConfiguredWithCodeRule j) {
+ assertEquals(2, j.jenkins.getNodes().size(), "Base nodes not found");
}
@Test
- public void should_remove_normal_nodes_configured_after_reload() throws Exception {
+ void should_remove_normal_nodes_configured_after_reload(JenkinsConfiguredWithCodeRule j) throws Exception {
final Node slave = new StaticPretendSlave();
j.jenkins.addNode(slave);
@@ -46,11 +44,12 @@ public class JenkinsConfiguratorCloudSupportTest {
.configure(this.getClass()
.getResource("JenkinsConfiguratorCloudSupportTest.yml")
.toString());
- assertEquals("Base nodes not found", 2, j.jenkins.getNodes().size());
+ assertEquals(2, j.jenkins.getNodes().size(), "Base nodes not found");
}
@Test
- public void should_keep_cloud_no_instantiable_nodes_configured_after_reload() throws Exception {
+ void should_keep_cloud_no_instantiable_nodes_configured_after_reload(JenkinsConfiguredWithCodeRule j)
+ throws Exception {
final Node slave = new Cloud1PretendSlave();
j.jenkins.addNode(slave);
@@ -58,14 +57,14 @@ public class JenkinsConfiguratorCloudSupportTest {
.configure(this.getClass()
.getResource("JenkinsConfiguratorCloudSupportTest.yml")
.toString());
- assertEquals("Cloud nodes not found", 3, j.jenkins.getNodes().size());
- assertNotNull("Slave 1", j.jenkins.getNode("agent1"));
- assertNotNull("Slave 1", j.jenkins.getNode("agent2"));
- assertNotNull("Slave cloud", j.jenkins.getNode("testCloud"));
+ assertEquals(3, j.jenkins.getNodes().size(), "Cloud nodes not found");
+ assertNotNull(j.jenkins.getNode("agent1"), "Slave 1");
+ assertNotNull(j.jenkins.getNode("agent2"), "Slave 1");
+ assertNotNull(j.jenkins.getNode("testCloud"), "Slave cloud");
}
@Test
- public void should_keep_cloud_ephemeral_nodes_configured_after_reload() throws Exception {
+ void should_keep_cloud_ephemeral_nodes_configured_after_reload(JenkinsConfiguredWithCodeRule j) throws Exception {
final Node slave = new Cloud2PretendSlave();
j.jenkins.addNode(slave);
@@ -73,14 +72,15 @@ public class JenkinsConfiguratorCloudSupportTest {
.configure(this.getClass()
.getResource("JenkinsConfiguratorCloudSupportTest.yml")
.toString());
- assertEquals("Cloud nodes not found", 3, j.jenkins.getNodes().size());
- assertNotNull("Slave 1", j.jenkins.getNode("agent1"));
- assertNotNull("Slave 1", j.jenkins.getNode("agent2"));
- assertNotNull("Slave cloud", j.jenkins.getNode("testCloud"));
+ assertEquals(3, j.jenkins.getNodes().size(), "Cloud nodes not found");
+ assertNotNull(j.jenkins.getNode("agent1"), "Slave 1");
+ assertNotNull(j.jenkins.getNode("agent2"), "Slave 1");
+ assertNotNull(j.jenkins.getNode("testCloud"), "Slave cloud");
}
@Test
- public void should_keep_cloud_abstractCloudSlave_nodes_configured_after_reload() throws Exception {
+ void should_keep_cloud_abstractCloudSlave_nodes_configured_after_reload(JenkinsConfiguredWithCodeRule j)
+ throws Exception {
final Node slave = new Cloud3PretendSlave();
j.jenkins.addNode(slave);
@@ -88,15 +88,15 @@ public class JenkinsConfiguratorCloudSupportTest {
.configure(this.getClass()
.getResource("JenkinsConfiguratorCloudSupportTest.yml")
.toString());
- assertEquals("Cloud nodes not found", 3, j.jenkins.getNodes().size());
- assertNotNull("Slave 1", j.jenkins.getNode("agent1"));
- assertNotNull("Slave 1", j.jenkins.getNode("agent2"));
- assertNotNull("Slave cloud", j.jenkins.getNode("testCloud"));
+ assertEquals(3, j.jenkins.getNodes().size(), "Cloud nodes not found");
+ assertNotNull(j.jenkins.getNode("agent1"), "Slave 1");
+ assertNotNull(j.jenkins.getNode("agent2"), "Slave 1");
+ assertNotNull(j.jenkins.getNode("testCloud"), "Slave cloud");
}
@Test
@ConfiguredWithCode("JenkinsConfiguratorCloudSupportTest.yml")
- public void should_export_only_static_nodes() throws Exception {
+ void should_export_only_static_nodes(JenkinsConfiguredWithCodeRule j) throws Exception {
j.jenkins.addNode(new Cloud1PretendSlave());
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorTest.java
index 55bfdd89..0338fb23 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/core/JenkinsConfiguratorTest.java
@@ -3,10 +3,10 @@ package io.jenkins.plugins.casc.core;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.hasSize;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.EnvVars;
@@ -22,14 +22,14 @@ import hudson.util.DescribableList;
import io.jenkins.plugins.casc.ConfigurationAsCode;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.Objects;
import jenkins.model.Jenkins;
import org.apache.commons.io.FileUtils;
import org.jenkinsci.Symbol;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.TestExtension;
import org.kohsuke.stapler.DataBoundConstructor;
@@ -37,24 +37,22 @@ import org.kohsuke.stapler.DataBoundConstructor;
/**
* @author Nicolas De Loof
*/
-public class JenkinsConfiguratorTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class JenkinsConfiguratorTest {
@Test
@ConfiguredWithCode("Primitives.yml")
- public void jenkins_primitive_attributes() {
+ void jenkins_primitive_attributes(JenkinsConfiguredWithCodeRule j) {
final Jenkins jenkins = Jenkins.get();
assertEquals(6666, jenkins.getSlaveAgentPort());
}
@Test
@ConfiguredWithCode("HeteroDescribable.yml")
- public void jenkins_abstract_describable_attributes() {
+ void jenkins_abstract_describable_attributes(JenkinsConfiguredWithCodeRule j) {
final Jenkins jenkins = Jenkins.get();
- assertTrue(jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm);
- assertTrue(jenkins.getAuthorizationStrategy() instanceof FullControlOnceLoggedInAuthorizationStrategy);
+ assertInstanceOf(HudsonPrivateSecurityRealm.class, jenkins.getSecurityRealm());
+ assertInstanceOf(FullControlOnceLoggedInAuthorizationStrategy.class, jenkins.getAuthorizationStrategy());
assertFalse(((FullControlOnceLoggedInAuthorizationStrategy) jenkins.getAuthorizationStrategy())
.isAllowAnonymousRead());
}
@@ -62,7 +60,7 @@ public class JenkinsConfiguratorTest {
@Test
@Issue("Issue #173")
@ConfiguredWithCode("SetEnvironmentVariable.yml")
- public void shouldSetEnvironmentVariable() throws Exception {
+ void shouldSetEnvironmentVariable(JenkinsConfiguredWithCodeRule j) throws Exception {
final DescribableList, NodePropertyDescriptor> properties =
Jenkins.get().getNodeProperties();
EnvVars env = new EnvVars();
@@ -74,7 +72,7 @@ public class JenkinsConfiguratorTest {
@Test
@ConfiguredWithCode("ConfigureLabels.yml")
- public void shouldExportLabelAtoms() throws Exception {
+ void shouldExportLabelAtoms(JenkinsConfiguredWithCodeRule j) throws Exception {
Objects.requireNonNull(Jenkins.get().getLabelAtom("label1"))
.getProperties()
.add(new TestProperty(1));
@@ -93,7 +91,7 @@ public class JenkinsConfiguratorTest {
@Test
@ConfiguredWithCode("ConfigureLabels.yml")
- public void shouldImportLabelAtoms() {
+ void shouldImportLabelAtoms(JenkinsConfiguredWithCodeRule j) {
LabelAtom label1 = Jenkins.get().getLabelAtom("label1");
assertNotNull(label1);
assertThat(label1.getProperties(), hasSize(2));
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/core/MavenConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/core/MavenConfiguratorTest.java
index 4e3938f4..aa51b942 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/core/MavenConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/core/MavenConfiguratorTest.java
@@ -1,37 +1,37 @@
package io.jenkins.plugins.casc.core;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+
import hudson.tasks.Maven;
import hudson.tools.InstallSourceProperty;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import jenkins.mvn.FilePathSettingsProvider;
import jenkins.mvn.GlobalMavenConfig;
import jenkins.mvn.SettingsProvider;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
/**
* @author Nicolas De Loof
*/
-public class MavenConfiguratorTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class MavenConfiguratorTest {
@Test
@ConfiguredWithCode("MavenConfiguratorTest.yml")
- public void should_configure_maven_tools_and_global_config() {
+ void should_configure_maven_tools_and_global_config(JenkinsConfiguredWithCodeRule j) {
final Maven.DescriptorImpl descriptor = (Maven.DescriptorImpl) j.jenkins.getDescriptorOrDie(Maven.class);
- Assert.assertEquals(1, descriptor.getInstallations().length);
- Assert.assertEquals("/usr/share/maven", descriptor.getInstallations()[0].getHome());
+ assertEquals(1, descriptor.getInstallations().length);
+ assertEquals("/usr/share/maven", descriptor.getInstallations()[0].getHome());
InstallSourceProperty installSourceProperty =
descriptor.getInstallations()[0].getProperties().get(InstallSourceProperty.class);
- Assert.assertEquals("3.5.0", installSourceProperty.installers.get(Maven.MavenInstaller.class).id);
+ assertEquals("3.5.0", installSourceProperty.installers.get(Maven.MavenInstaller.class).id);
final SettingsProvider provider = GlobalMavenConfig.get().getSettingsProvider();
- Assert.assertTrue(provider instanceof FilePathSettingsProvider);
- Assert.assertEquals("/usr/share/maven-settings.xml", ((FilePathSettingsProvider) provider).getPath());
+ assertInstanceOf(FilePathSettingsProvider.class, provider);
+ assertEquals("/usr/share/maven-settings.xml", ((FilePathSettingsProvider) provider).getPath());
}
}
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.java
index 08a34811..0bc68546 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.java
@@ -1,23 +1,22 @@
package io.jenkins.plugins.casc.core;
-import static org.junit.Assert.assertSame;
+import static org.junit.jupiter.api.Assertions.assertSame;
import hudson.security.AuthorizationStrategy;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
-import org.junit.Rule;
-import org.junit.Test;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
+import org.junit.jupiter.api.Test;
/**
* @author Kohsuke Kawaguchi
*/
-public class UnsecuredAuthorizationStrategyConfiguratorTest {
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class UnsecuredAuthorizationStrategyConfiguratorTest {
@Test
@ConfiguredWithCode("UnsecuredAuthorizationStrategyConfiguratorTest.yml")
- public void unsecured() {
+ void unsecured(JenkinsConfiguredWithCodeRule j) {
assertSame(AuthorizationStrategy.UNSECURED, j.jenkins.getAuthorizationStrategy());
}
}
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/core/UpdateCenterConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/core/UpdateCenterConfiguratorTest.java
index 28f38559..4593686d 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/core/UpdateCenterConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/core/UpdateCenterConfiguratorTest.java
@@ -1,7 +1,7 @@
package io.jenkins.plugins.casc.core;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import hudson.model.UpdateCenter;
import hudson.model.UpdateSite;
@@ -10,20 +10,18 @@ import io.jenkins.plugins.casc.Configurator;
import io.jenkins.plugins.casc.ConfiguratorRegistry;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import io.jenkins.plugins.casc.model.CNode;
import io.jenkins.plugins.casc.model.Mapping;
import java.util.List;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-public class UpdateCenterConfiguratorTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class UpdateCenterConfiguratorTest {
@Test
@ConfiguredWithCode("UpdateCenter.yml")
- public void shouldSetUpdateCenterSites() throws Exception {
+ void shouldSetUpdateCenterSites(JenkinsConfiguredWithCodeRule j) throws Exception {
UpdateCenter updateCenter = j.jenkins.getUpdateCenter();
List sites = updateCenter.getSites();
assertEquals(2, sites.size());
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DataBoundConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DataBoundConfiguratorTest.java
index c265fdfb..30a5ee0b 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DataBoundConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DataBoundConfiguratorTest.java
@@ -5,13 +5,13 @@ import static io.jenkins.plugins.casc.misc.Util.assertNotInLog;
import static io.jenkins.plugins.casc.misc.Util.getJenkinsRoot;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import hudson.util.Secret;
import io.jenkins.plugins.casc.ConfigurationAsCode;
@@ -34,34 +34,34 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.PostConstruct;
-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.Issue;
import org.jvnet.hudson.test.JenkinsRule;
-import org.jvnet.hudson.test.LoggerRule;
+import org.jvnet.hudson.test.LogRecorder;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
/**
* @author Nicolas De Loof
*/
-public class DataBoundConfiguratorTest {
+@WithJenkins
+class DataBoundConfiguratorTest {
- @Rule
- public JenkinsRule j = new JenkinsRule();
+ private JenkinsRule j;
- @Rule
- public LoggerRule logging = new LoggerRule();
+ private final LogRecorder logging = new LogRecorder();
- @Before
- public void tearUp() {
+ @BeforeEach
+ void tearUp(JenkinsRule j) {
+ this.j = j;
logging.record(Logger.getLogger(DataBoundConfigurator.class.getName()), Level.FINEST)
.capture(2048);
}
@Test
- public void configure_databound() throws Exception {
+ void configure_databound() throws Exception {
Mapping config = new Mapping();
config.put("foo", "foo");
config.put("bar", "true");
@@ -78,7 +78,7 @@ public class DataBoundConfiguratorTest {
}
@Test
- public void exportYaml() throws Exception {
+ void exportYaml() throws Exception {
Foo foo = new Foo("foo", true, 42);
foo.setZot("zot");
foo.setDbl(12.34);
@@ -88,25 +88,25 @@ public class DataBoundConfiguratorTest {
final ConfigurationContext context = new ConfigurationContext(registry);
final CNode node = c.describe(foo, context);
assertNotNull(node);
- assertTrue(node instanceof Mapping);
+ assertInstanceOf(Mapping.class, node);
Mapping map = (Mapping) node;
- assertEquals(map.get("foo").toString(), "foo");
- assertEquals(map.get("bar").toString(), "true");
- assertEquals(map.get("qix").toString(), "42");
- assertEquals(map.get("zot").toString(), "zot");
- assertEquals(map.get("dbl").toString(), "12.34");
- assertEquals(map.get("flt").toString(), "1.0");
- assertEquals(Util.toYamlString(map.get("foo")).trim(), "\"foo\"");
- assertEquals(Util.toYamlString(map.get("bar")).trim(), "true");
- assertEquals(Util.toYamlString(map.get("qix")).trim(), "42");
- assertEquals(Util.toYamlString(map.get("zot")).trim(), "\"zot\"");
- assertEquals(Util.toYamlString(map.get("dbl")).trim(), "\"12.34\"");
- assertEquals(Util.toYamlString(map.get("flt")).trim(), "\"1.0\"");
+ assertEquals("foo", map.get("foo").toString());
+ assertEquals("true", map.get("bar").toString());
+ assertEquals("42", map.get("qix").toString());
+ assertEquals("zot", map.get("zot").toString());
+ assertEquals("12.34", map.get("dbl").toString());
+ assertEquals("1.0", map.get("flt").toString());
+ assertEquals("\"foo\"", Util.toYamlString(map.get("foo")).trim());
+ assertEquals("true", Util.toYamlString(map.get("bar")).trim());
+ assertEquals("42", Util.toYamlString(map.get("qix")).trim());
+ assertEquals("\"zot\"", Util.toYamlString(map.get("zot")).trim());
+ assertEquals("\"12.34\"", Util.toYamlString(map.get("dbl")).trim());
+ assertEquals("\"1.0\"", Util.toYamlString(map.get("flt")).trim());
assertFalse(map.containsKey("other"));
}
@Test
- public void configureWithSets() throws Exception {
+ void configureWithSets() throws Exception {
Mapping config = new Mapping();
Sequence sequence = new Sequence();
sequence.add(new Scalar("bar"));
@@ -122,7 +122,7 @@ public class DataBoundConfiguratorTest {
}
@Test
- public void configureWithEmptySet() throws Exception {
+ void configureWithEmptySet() throws Exception {
Mapping config = new Mapping();
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
final Bar configured =
@@ -132,7 +132,7 @@ public class DataBoundConfiguratorTest {
}
@Test
- public void nonnullConstructorParameter() throws Exception {
+ void nonnullConstructorParameter() throws Exception {
Mapping config = new Mapping();
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
final NonnullParameterConstructor configured =
@@ -142,7 +142,7 @@ public class DataBoundConfiguratorTest {
}
@Test
- public void classParametersAreNonnullByDefault() throws Exception {
+ void classParametersAreNonnullByDefault() throws Exception {
Mapping config = new Mapping();
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
final ClassParametersAreNonnullByDefault configured =
@@ -152,7 +152,7 @@ public class DataBoundConfiguratorTest {
}
@Test
- public void packageParametersAreNonnullByDefault() {
+ void packageParametersAreNonnullByDefault() {
Mapping config = new Mapping();
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
@@ -168,7 +168,7 @@ public class DataBoundConfiguratorTest {
@Test
@Issue("#1025")
- public void packageParametersAreNonnullByDefaultButCanBeNullable() throws Exception {
+ void packageParametersAreNonnullByDefaultButCanBeNullable() throws Exception {
Mapping config = new Mapping();
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
final PackageParametersNonNullCheckForNull configured =
@@ -179,7 +179,7 @@ public class DataBoundConfiguratorTest {
@Test
@SuppressWarnings("unchecked")
- public void exportWithSets() throws Exception {
+ void exportWithSets() throws Exception {
HashSet set = new HashSet<>();
set.add("foo");
@@ -189,25 +189,26 @@ public class DataBoundConfiguratorTest {
final ConfigurationContext context = new ConfigurationContext(registry);
CNode node = c.describe(bar, context);
assertNotNull(node);
- assertTrue(node instanceof Mapping);
+ assertInstanceOf(Mapping.class, node);
Mapping map = (Mapping) node;
- assertEquals(map.get("strings").toString(), "[foo]");
- assertEquals(Util.toYamlString(map.get("strings")).trim(), "- \"foo\"");
+ assertEquals("[foo]", map.get("strings").toString());
+ assertEquals("- \"foo\"", Util.toYamlString(map.get("strings")).trim());
assertFalse(map.containsKey("other"));
// now with two elements
set.add("bar");
node = c.describe(bar, context);
assertNotNull(node);
- assertTrue(node instanceof Mapping);
+ assertInstanceOf(Mapping.class, node);
map = (Mapping) node;
- assertEquals(map.get("strings").toString(), "[bar, foo]");
- assertEquals(Util.toYamlString(map.get("strings")).trim(), "- \"bar\"\n- \"foo\"");
+ assertEquals("[bar, foo]", map.get("strings").toString());
+ assertEquals(
+ "- \"bar\"\n- \"foo\"", Util.toYamlString(map.get("strings")).trim());
}
@Test
@Issue("PR #838, Issue #222")
- public void export_mapping_should_not_be_null() throws Exception {
+ void export_mapping_should_not_be_null() throws Exception {
j.createFreeStyleProject("testJob1");
ConfigurationAsCode casc = ConfigurationAsCode.get();
casc.configure(
@@ -231,28 +232,27 @@ public class DataBoundConfiguratorTest {
}
@Test
- public void shouldThrowConfiguratorException() {
+ void shouldThrowConfiguratorException() {
Mapping config = new Mapping();
config.put("foo", "foo");
config.put("bar", "abcd");
config.put("qix", "99");
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
- try {
- registry.lookupOrFail(Foo.class).configure(config, new ConfigurationContext(registry));
- fail("above action is excepted to throw ConfiguratorException!");
- } catch (ConfiguratorException e) {
- assertThat(
- e.getMessage(),
- is(
- "foo: Failed to construct instance of class io.jenkins.plugins.casc.impl.configurators.DataBoundConfiguratorTest$Foo.\n"
- + " Constructor: public io.jenkins.plugins.casc.impl.configurators.DataBoundConfiguratorTest$Foo(java.lang.String,boolean,int).\n"
- + " Arguments: [java.lang.String, java.lang.Boolean, java.lang.Integer].\n"
- + " Expected Parameters: foo java.lang.String, bar boolean, qix int"));
- }
+ ConfiguratorException e = assertThrows(
+ ConfiguratorException.class,
+ () -> registry.lookupOrFail(Foo.class).configure(config, new ConfigurationContext(registry)),
+ "action is excepted to throw ConfiguratorException!");
+ assertThat(
+ e.getMessage(),
+ is(
+ "foo: Failed to construct instance of class io.jenkins.plugins.casc.impl.configurators.DataBoundConfiguratorTest$Foo.\n"
+ + " Constructor: public io.jenkins.plugins.casc.impl.configurators.DataBoundConfiguratorTest$Foo(java.lang.String,boolean,int).\n"
+ + " Arguments: [java.lang.String, java.lang.Boolean, java.lang.Integer].\n"
+ + " Expected Parameters: foo java.lang.String, bar boolean, qix int"));
}
@Test
- public void shouldNotLogSecrets() throws Exception {
+ void shouldNotLogSecrets() throws Exception {
Mapping config = new Mapping();
config.put("secret", "mySecretValue");
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
@@ -263,7 +263,7 @@ public class DataBoundConfiguratorTest {
@Test
@Issue("SECURITY-1497")
- public void shouldNotLogSecretsForUndefinedConstructors() throws Exception {
+ void shouldNotLogSecretsForUndefinedConstructors() throws Exception {
Mapping config = new Mapping();
config.put("secret", "mySecretValue");
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
@@ -273,7 +273,7 @@ public class DataBoundConfiguratorTest {
}
@Test
- public void shouldExportArray() throws Exception {
+ void shouldExportArray() throws Exception {
ArrayConstructor obj = new ArrayConstructor(new Foo[] {new Foo("", false, 0)});
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
@@ -283,9 +283,9 @@ public class DataBoundConfiguratorTest {
CNode node = c.describe(obj, context);
assertNotNull(node);
- assertTrue(node instanceof Mapping);
+ assertInstanceOf(Mapping.class, node);
Mapping map = (Mapping) node;
- assertEquals(map.get("anArray").toString(), "[{qix=0, bar=false, foo=}]");
+ assertEquals("[{qix=0, bar=false, foo=}]", map.get("anArray").toString());
}
public static class Foo {
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DescriptorConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DescriptorConfiguratorTest.java
index 236f4d1f..dcd0447b 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DescriptorConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DescriptorConfiguratorTest.java
@@ -7,23 +7,21 @@ import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.Extension;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import jenkins.model.GlobalConfiguration;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
/**
* @author Nicolas De Loof
*/
-public class DescriptorConfiguratorTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class DescriptorConfiguratorTest {
@Test
@ConfiguredWithCode("DescriptorConfiguratorTest_camelCase.yml")
- public void configurator_shouldConfigureItselfWhenUsingCamelCase() {
+ void configurator_shouldConfigureItselfWhenUsingCamelCase(JenkinsConfiguredWithCodeRule j) {
FooBar descriptor = (FooBar) j.jenkins.getDescriptorOrDie(FooBar.class);
assertThat(descriptor.getFoo(), equalTo("foo"));
assertThat(descriptor.getBar(), equalTo("bar"));
@@ -31,7 +29,7 @@ public class DescriptorConfiguratorTest {
@Test
@ConfiguredWithCode("DescriptorConfiguratorTest_lowerCase.yml")
- public void configurator_shouldConfigureItselfWhenUsingLoweCase() {
+ void configurator_shouldConfigureItselfWhenUsingLoweCase(JenkinsConfiguredWithCodeRule j) {
FooBar descriptor = (FooBar) j.jenkins.getDescriptorOrDie(FooBar.class);
assertThat(descriptor.getFoo(), equalTo("foo"));
assertThat(descriptor.getBar(), equalTo("bar"));
@@ -39,7 +37,7 @@ public class DescriptorConfiguratorTest {
@Test
@ConfiguredWithCode("DescriptorConfiguratorTest_camelCase.yml")
- public void configurator_shouldResolveFloatAndDoubleValues() {
+ void configurator_shouldResolveFloatAndDoubleValues(JenkinsConfiguredWithCodeRule j) {
FooBar descriptor = (FooBar) j.jenkins.getDescriptorOrDie(FooBar.class);
assertThat(descriptor.getBaz(), equalTo(1.0));
assertThat(descriptor.getFlt(), equalTo(1000f));
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DuplicateKeyDescribableConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DuplicateKeyDescribableConfiguratorTest.java
index 9b3d0259..dbb7dbba 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DuplicateKeyDescribableConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/DuplicateKeyDescribableConfiguratorTest.java
@@ -9,20 +9,19 @@ import hudson.model.Descriptor;
import io.jenkins.plugins.casc.ConfiguratorRegistry;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import java.util.Objects;
import jenkins.model.GlobalConfiguration;
import org.jenkinsci.Symbol;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
-public class DuplicateKeyDescribableConfiguratorTest {
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class DuplicateKeyDescribableConfiguratorTest {
@Test
- public void implementors_shouldNotThrowException() {
+ void implementors_shouldNotThrowException(JenkinsConfiguredWithCodeRule j) {
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
HeteroDescribableConfigurator configurator =
Objects.requireNonNull((HeteroDescribableConfigurator) registry.lookup(FooBar.class));
@@ -32,7 +31,7 @@ public class DuplicateKeyDescribableConfiguratorTest {
@Test
@ConfiguredWithCode("DuplicateKeyDescribableConfigure.yml")
- public void configure_shouldNotThrowException() {
+ void configure_shouldNotThrowException(JenkinsConfiguredWithCodeRule j) {
FooBarGlobalConfiguration descriptor =
(FooBarGlobalConfiguration) j.jenkins.getDescriptor(FooBarGlobalConfiguration.class);
FooBarOne instance = (FooBarOne) Objects.requireNonNull(descriptor).fooBar;
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.java
index 8f07c88f..3c5fbed5 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.java
@@ -9,20 +9,18 @@ import hudson.model.User;
import io.jenkins.plugins.casc.UnknownAttributesException;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
-import org.junit.Rule;
-import org.junit.Test;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
+import org.junit.jupiter.api.Test;
-public class MissingConfiguratorTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class MissingConfiguratorTest {
@ConfiguredWithCode(
value = "MissingConfiguratorTest.yml",
expected = UnknownAttributesException.class,
message = "No hudson.security.AuthorizationStrategy implementation found for globalMatrix")
@Test
- public void testThrowsSuggestion() {
+ void testThrowsSuggestion(JenkinsConfiguredWithCodeRule j) {
// The conditions for this test can be false in PCT runs
assumeThat(j.jenkins.getPlugin("matrix-auth"), nullValue());
// No config check needed, should fail with IllegalArgumentException
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/SelfConfiguratorTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/SelfConfiguratorTest.java
index 80ea773c..604ce64f 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/SelfConfiguratorTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/impl/configurators/SelfConfiguratorTest.java
@@ -7,26 +7,24 @@ import static org.hamcrest.Matchers.not;
import io.jenkins.plugins.casc.ConfiguratorException;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
-import org.junit.Rule;
-import org.junit.Test;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
+import org.junit.jupiter.api.Test;
/**
* @author Nicolas De Loof
*/
-public class SelfConfiguratorTest {
-
- @Rule
- public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();
+@WithJenkinsConfiguredWithCode
+class SelfConfiguratorTest {
@Test
@ConfiguredWithCode(value = "SelfConfiguratorTest.yml")
- public void self_configure() {
+ void self_configure(JenkinsConfiguredWithCodeRule j) {
assertThat(j.jenkins.getRawBuildsDir(), is("/tmp"));
}
@Test
@ConfiguredWithCode(value = "SelfConfiguratorRestrictedTest.yml", expected = ConfiguratorException.class)
- public void self_configure_restricted() {
+ void self_configure_restricted(JenkinsConfiguredWithCodeRule j) {
// expected to throw Configurator Exception
assertThat(j.jenkins.getRawBuildsDir(), is(not("/tmp")));
}
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeMethodRuleTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeMethodRuleTest.java
index f37de7e8..c8e40992 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeMethodRuleTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeMethodRuleTest.java
@@ -9,12 +9,12 @@ import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
import java.util.Collections;
import org.junit.jupiter.api.Test;
-public class JenkinsConfiguredWithCodeMethodRuleTest {
+class JenkinsConfiguredWithCodeMethodRuleTest {
@Test
@WithJenkinsConfiguredWithCode
@ConfiguredWithCode("admin.yml")
- public void user_created(JenkinsConfiguredWithCodeRule rule) {
+ void user_created(JenkinsConfiguredWithCodeRule rule) {
assertNotNull(rule);
User admin = User.get("admin", false, Collections.emptyMap());
assertNotNull(admin);
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeRuleClassRuleTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeRuleClassRuleTest.java
index 8493c3fc..80c2287d 100644
--- a/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeRuleClassRuleTest.java
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeRuleClassRuleTest.java
@@ -11,17 +11,17 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@WithJenkinsConfiguredWithCode
-public class JenkinsConfiguredWithCodeRuleClassRuleTest {
+class JenkinsConfiguredWithCodeRuleClassRuleTest {
@ConfiguredWithCode("admin.yml")
public static JenkinsConfiguredWithCodeRule j;
@BeforeAll
- public static void beforeAll() {
+ static void beforeAll() {
assertNotNull(j);
}
@Test
- public void user_created() {
+ void user_created() {
User admin = User.get("admin", false, Collections.emptyMap());
assertNotNull(admin);
}
diff --git a/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeRulePermissionTest.java b/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeRulePermissionTest.java
new file mode 100644
index 00000000..dbd8ec4b
--- /dev/null
+++ b/test-harness/src/test/java/io/jenkins/plugins/casc/junit/jupiter/JenkinsConfiguredWithCodeRulePermissionTest.java
@@ -0,0 +1,56 @@
+package io.jenkins.plugins.casc.junit.jupiter;
+
+import hudson.security.Permission;
+import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
+import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.jupiter.api.Assertions;
+import org.jvnet.hudson.test.MockAuthorizationStrategy;
+
+/**
+ * Validates that JUnit4 and JUnit5 based {@link JenkinsConfiguredWithCodeRule} implementations have the same default authorization and permissions.
+ */
+@SuppressWarnings("deprecation")
+public class JenkinsConfiguredWithCodeRulePermissionTest {
+
+ @Rule
+ public JenkinsConfiguredWithCodeRule junit4rule = new JenkinsConfiguredWithCodeRule();
+
+ @org.junit.Test
+ public void junit4() {
+ MockAuthorizationStrategy strategy = new MockAuthorizationStrategy();
+ junit4rule.getInstance().setAuthorizationStrategy(strategy);
+
+ // basic permissions
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.READ));
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.WRITE));
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.CREATE));
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.UPDATE));
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.DELETE));
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.CONFIGURE));
+
+ // admin permissions
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.FULL_CONTROL));
+ Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.HUDSON_ADMINISTER));
+ }
+
+ @org.junit.jupiter.api.Test
+ @WithJenkinsConfiguredWithCode
+ void junit5(JenkinsConfiguredWithCodeRule junit5rule) {
+ MockAuthorizationStrategy strategy = new MockAuthorizationStrategy();
+ junit5rule.getInstance().setAuthorizationStrategy(strategy);
+
+ // basic permissions
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.READ));
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.WRITE));
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.CREATE));
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.UPDATE));
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.DELETE));
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.CONFIGURE));
+
+ // admin permissions
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.FULL_CONTROL));
+ Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.HUDSON_ADMINISTER));
+ }
+}