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

Enable JUnit v5 #417

Merged
merged 5 commits into from
Mar 11, 2022
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
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