Skip to content

Commit

Permalink
Enable JUnit v5 (#417)
Browse files Browse the repository at this point in the history
  • Loading branch information
nhojpatrick authored Mar 11, 2022
1 parent 0fc40e9 commit 8693165
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 98 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import static java.util.Collections.singletonList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.ArgumentMatchers.anyMap;
Expand All @@ -45,14 +46,14 @@
import static org.mockito.Mockito.times;

public class PluginManagerTest {

private PluginManager pm;
private Config cfg;
private List<Plugin> directDependencyExpectedPlugins;

@Rule
public final TemporaryFolder folder = new TemporaryFolder();


@Rule
public final EnvironmentVariables environmentVariables = new EnvironmentVariables();

Expand Down Expand Up @@ -164,20 +165,22 @@ public void findEffectivePluginsTest() {

Map<String, Plugin> effectivePlugins = pm.findEffectivePlugins(requestedPlugins);

assertThat(effectivePlugins.get("git").getVersion())
.hasToString("1.3");
assertThat(effectivePlugins.get("scm-api").getVersion())
.hasToString("2.2.3");
assertThat(effectivePlugins.get("aws-credentials").getVersion())
.hasToString("1.24");
assertThat(effectivePlugins.get("p4").getVersion())
.hasToString("1.3.3");
assertThat(effectivePlugins.get("script-security").getVersion())
.hasToString("1.26");
assertThat(effectivePlugins.get("credentials").getVersion())
.hasToString("2.1.11");
assertThat(effectivePlugins.get("ace-editor").getVersion())
.hasToString("1.0.1");
assertAll(
() -> assertThat(effectivePlugins.get("git").getVersion())
.hasToString("1.3"),
() -> assertThat(effectivePlugins.get("scm-api").getVersion())
.hasToString("2.2.3"),
() -> assertThat(effectivePlugins.get("aws-credentials").getVersion())
.hasToString("1.24"),
() -> assertThat(effectivePlugins.get("p4").getVersion())
.hasToString("1.3.3"),
() -> assertThat(effectivePlugins.get("script-security").getVersion())
.hasToString("1.26"),
() -> assertThat(effectivePlugins.get("credentials").getVersion())
.hasToString("2.1.11"),
() -> assertThat(effectivePlugins.get("ace-editor").getVersion())
.hasToString("1.0.1")
);
}

@Test
Expand All @@ -196,8 +199,6 @@ public void listPluginsNoOutputTest() throws Exception {
assertThat(output).isEmpty();
}



@Test
public void listPluginsOutputTest() throws Exception {
Config config = Config.builder()
Expand Down Expand Up @@ -378,21 +379,27 @@ public void getPluginDependencyJsonArrayTest2() {

pm.setPluginInfoJson(pluginVersionJson);

Plugin browserStackPlugin1 = new Plugin("browserstack-integration", "1.0.0", null, null);
browserStackPlugin1.setChecksum("1234");
JSONArray browserStackPluginJson1 = pm.getPluginDependencyJsonArray(browserStackPlugin1, pluginVersionJson);
assertThat(browserStackPluginJson1)
.hasToString(dependencies1.toString());

Plugin browserStackPlugin111 = new Plugin("browserstack-integration", "1.1.1", null, null);
JSONArray browserStackPluginJson111 = pm.getPluginDependencyJsonArray(browserStackPlugin111, pluginVersionJson);
assertThat(browserStackPluginJson111)
.hasToString(dependencies111.toString());

Plugin browserStackPlugin112 = new Plugin("browserstack-integration", "1.1.2", null, null);
JSONArray browserStackPluginJson112 = pm.getPluginDependencyJsonArray(browserStackPlugin112, pluginVersionJson);
assertThat(browserStackPluginJson112)
.hasToString(dependencies112.toString());
assertAll(
() -> {
Plugin browserStackPlugin100 = new Plugin("browserstack-integration", "1.0.0", null, null);
browserStackPlugin100.setChecksum("1234");
JSONArray browserStackPluginJson1 = pm.getPluginDependencyJsonArray(browserStackPlugin100, pluginVersionJson);
assertThat(browserStackPluginJson1)
.hasToString(dependencies1.toString());
},
() -> {
Plugin browserStackPlugin111 = new Plugin("browserstack-integration", "1.1.1", null, null);
JSONArray browserStackPluginJson111 = pm.getPluginDependencyJsonArray(browserStackPlugin111, pluginVersionJson);
assertThat(browserStackPluginJson111)
.hasToString(dependencies111.toString());
},
() -> {
Plugin browserStackPlugin112 = new Plugin("browserstack-integration", "1.1.2", null, null);
JSONArray browserStackPluginJson112 = pm.getPluginDependencyJsonArray(browserStackPlugin112, pluginVersionJson);
assertThat(browserStackPluginJson112)
.hasToString(dependencies112.toString());
}
);
}

@Test
Expand Down Expand Up @@ -474,15 +481,17 @@ public void warningExistsTest() {
Plugin sshAgents1 = new Plugin("ssh-slaves", "0.9", null, null);
Plugin sshAgents2 = new Plugin("ssh-slaves", "9.2", null, null);

assertThat(pm.warningExists(scriptler)).isTrue();
assertThat(pm.warningExists(lockableResource)).isTrue();
assertThat(pm.warningExists(lockableResource2)).isFalse();
assertThat(pm.warningExists(cucumberReports1)).isFalse();
assertThat(pm.warningExists(cucumberReports2)).isTrue();
//assertThat(pm.warningExists(cucumberReports3)).isFalse();
// currently fails since 2.5.3 matches pattern even though 2.5.1 is last effected version
assertThat(pm.warningExists(sshAgents1)).isTrue();
assertThat(pm.warningExists(sshAgents2)).isFalse();
assertAll(
() -> assertThat(pm.warningExists(scriptler)).isTrue(),
() -> assertThat(pm.warningExists(lockableResource)).isTrue(),
() -> assertThat(pm.warningExists(lockableResource2)).isFalse(),
() -> assertThat(pm.warningExists(cucumberReports1)).isFalse(),
() -> assertThat(pm.warningExists(cucumberReports2)).isTrue(),
//() -> assertThat(pm.warningExists(cucumberReports3)).isFalse(),
// currently fails since 2.5.3 matches pattern even though 2.5.1 is last effected version
() -> assertThat(pm.warningExists(sshAgents1)).isTrue(),
() -> assertThat(pm.warningExists(sshAgents2)).isFalse()
);
}

@Test
Expand Down Expand Up @@ -755,7 +764,6 @@ public void resolveDependenciesFromHudsonManifest() {
assertThat(testPlugin.getJenkinsVersion()).hasToString("1.2.0");
}


@Test
public void resolveDependenciesFromInvalidManifest() {
PluginManager pluginManagerSpy = spy(pm);
Expand Down Expand Up @@ -819,7 +827,6 @@ public void resolveDirectDependenciesManifestTest1() {
assertThat(actualPlugins).isEqualTo(directDependencyExpectedPlugins);
}


@Test
public void resolveDirectDependenciesManifestTest2() {
PluginManager pluginManagerSpy = spy(pm);
Expand Down Expand Up @@ -849,7 +856,6 @@ public void resolveDirectDependenciesManifestTest3() {
assertThat(actualPlugins).isEqualTo(directDependencyExpectedPlugins);
}


@Test
public void resolveDirectDependenciesLatest() {
PluginManager pluginManagerSpy = spy(pm);
Expand Down Expand Up @@ -1165,48 +1171,58 @@ public void getDownloadPluginUrlCustomUcUrls() throws IOException {
pluginManager.setLatestUcJson(ucJson);
pluginManager.setExperimentalUcJson(ucJson);

// with non-latest version
Plugin plugin = new Plugin("pluginName", "1.0.0", null, null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/download/plugins/pluginName/1.0.0/pluginName.hpi");

// lastest version
plugin = new Plugin("pluginName", "latest", null, null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/dynamic-stable-2.319.1/latest/pluginName.hpi");

// latest version with resolved version
// when `--latest-specified` or `--latest` is enabled the plugin version string will be updated to a specific
// version and the latest flag set to true. The resolved download url should resolve to JENKINS_UC_DOWNLOAD_URL
plugin = new Plugin("pluginName", "1.0.0", null, null);
plugin.setLatest(true);
assertThat(plugin.isLatest()).isTrue();
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/download/plugins/pluginName/1.0.0/pluginName.hpi");

// experimental version
plugin = new Plugin("pluginName", "experimental", null, null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/experimental/latest/pluginName.hpi");

// experimental version with resolved version
// if an experimental plugin is resolved to specific version the "is experimental" property remains "true"
// but download url should resolve to configured JENKINS_UC_DOWNLOAD_URL
plugin = new Plugin("pluginName", "experimental", null, null);
plugin.setVersion(new VersionNumber("1.0.0"));
assertThat(plugin.isExperimental()).isTrue();
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/download/plugins/pluginName/1.0.0/pluginName.hpi");

// incremental
plugin = new Plugin("pluginName", "1.0.0", null, "com.cloudbees.jenkins");
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/incrementals/com/cloudbees/jenkins/pluginName/1.0.0/pluginName-1.0.0.hpi");

// explicit url
plugin = new Plugin("pluginName", "1.0.0", "https://other-mirror.com/plugins/custom-url.hpi", null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://other-mirror.com/plugins/custom-url.hpi");
assertAll(
() -> {
// with non-latest version
Plugin plugin = new Plugin("pluginName", "1.0.0", null, null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/download/plugins/pluginName/1.0.0/pluginName.hpi");
},
() -> {
// lastest version
Plugin plugin = new Plugin("pluginName", "latest", null, null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/dynamic-stable-2.319.1/latest/pluginName.hpi");
},
() -> {
// latest version with resolved version
// when `--latest-specified` or `--latest` is enabled the plugin version string will be updated to a specific
// version and the latest flag set to true. The resolved download url should resolve to JENKINS_UC_DOWNLOAD_URL
Plugin plugin = new Plugin("pluginName", "1.0.0", null, null);
plugin.setLatest(true);
assertThat(plugin.isLatest()).isTrue();
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/download/plugins/pluginName/1.0.0/pluginName.hpi");
},
() -> {
// experimental version
Plugin plugin = new Plugin("pluginName", "experimental", null, null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/experimental/latest/pluginName.hpi");
},
() -> {
// experimental version with resolved version
// if an experimental plugin is resolved to specific version the "is experimental" property remains "true"
// but download url should resolve to configured JENKINS_UC_DOWNLOAD_URL
Plugin plugin = new Plugin("pluginName", "experimental", null, null);
plugin.setVersion(new VersionNumber("1.0.0"));
assertThat(plugin.isExperimental()).isTrue();
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/download/plugins/pluginName/1.0.0/pluginName.hpi");
},
() -> {
// incremental
Plugin plugin = new Plugin("pluginName", "1.0.0", null, "com.cloudbees.jenkins");
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://private-mirror.com/jenkins-updated-center/incrementals/com/cloudbees/jenkins/pluginName/1.0.0/pluginName-1.0.0.hpi");
},
() -> {
// explicit url
Plugin plugin = new Plugin("pluginName", "1.0.0", "https://other-mirror.com/plugins/custom-url.hpi", null);
assertThat(pluginManager.getPluginDownloadUrl(plugin))
.isEqualTo("https://other-mirror.com/plugins/custom-url.hpi");
}
);
}

@Test
Expand Down Expand Up @@ -1259,7 +1275,6 @@ public void bundledPluginsTest() {
new Plugin("github-branch-source", "1.8", null, null));
}


@Test
public void getPluginFromLocalFolderTest() {
PluginManager pluginManagerSpy = spy(pm);
Expand Down Expand Up @@ -1405,8 +1420,6 @@ private JSONObject setTestUcJson() {
return latestUcJson;
}



private JSONArray array(
JSONObject... objects) {
return new JSONArray(objects);
Expand All @@ -1421,4 +1434,5 @@ private JSONObject dependency(
.put("optional", optional)
.put("version", version);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
import java.util.List;
import org.apache.commons.io.IOUtils;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

import static java.util.Collections.singletonList;
import static org.assertj.core.api.Assertions.assertThat;
Expand All @@ -19,7 +19,7 @@ public class PluginManagerUpdatesTest {

private PluginManager pm;

@Before
@BeforeEach
public void before() throws IOException {
Config cfg = Config.builder()
.withJenkinsWar(Settings.DEFAULT_WAR)
Expand Down Expand Up @@ -63,7 +63,7 @@ private JSONObject loadExperimentalPluginVersionsFromClassPath() throws IOExcept
}

@Test
@Ignore("Need another source of data for incrementals, add later")
@Disabled("Need another source of data for incrementals, add later")
public void updateIncremental() {
List<Plugin> latestVersionsOfPlugins = pm.getLatestVersionsOfPlugins(singletonList(
pluginIncremental("mailer", "org.jenkins-ci.plugins", "1.31-rc315.eb08e134da74")
Expand Down Expand Up @@ -145,4 +145,5 @@ private Plugin pluginUrl(String name, String url) {
private Plugin pluginIncremental(String name, String groupId, String version) {
return new Plugin(name, version, null, groupId);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import org.json.JSONObject;
import org.junit.Test;
import org.junit.jupiter.api.Test;

import static org.assertj.core.api.Assertions.assertThat;

Expand Down
33 changes: 30 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,17 @@

<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand All @@ -68,7 +79,13 @@
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>5.8.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
Expand All @@ -80,8 +97,18 @@

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Expand Down

0 comments on commit 8693165

Please sign in to comment.