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 #347

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
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
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>5.6</version>
<version>5.7</version>
<relativePath />
</parent>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.jenkinsci.lib.configprovider;

import static org.junit.jupiter.api.Assertions.*;

import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.plugins.emailext.JellyTemplateConfig;
import jenkins.model.Jenkins;
Expand All @@ -12,82 +14,111 @@
import org.jenkinsci.plugins.configfiles.json.JsonConfig;
import org.jenkinsci.plugins.configfiles.maven.MavenSettingsConfig;
import org.jenkinsci.plugins.configfiles.xml.XmlConfig;
import org.junit.Assert;
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.TestExtension;
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.jvnet.hudson.test.recipes.LocalData;
import org.kohsuke.stapler.DataBoundConstructor;

/**
* Created by domi on 17/09/16.
*/
public class SystemConfigFilesManagementTest {

@Rule
public JenkinsRule j = new JenkinsRule();
@WithJenkins
class SystemConfigFilesManagementTest {

@Test
@LocalData
public void testLoadAndMergeOldData() {
void testLoadAndMergeOldData(JenkinsRule j) {

for (ConfigProvider cp : ConfigProvider.all()) {
// as all the config files have been moved to global config,
// all providers must not hold any files any more
AbstractConfigProviderImpl acp = (AbstractConfigProviderImpl) cp;
Assert.assertTrue("configs for " + acp.getProviderId() + " should be empty", acp.getConfigs().isEmpty());
Assert.assertFalse("file for " + acp.getProviderId() + " still exists", acp.getConfigXml().getFile().exists());
assertTrue(acp.getConfigs().isEmpty(), "configs for " + acp.getProviderId() + " should be empty");
assertFalse(acp.getConfigXml().getFile().exists(), "file for " + acp.getProviderId() + " still exists");
}

Assert.assertEquals(1, getProvider(MavenSettingsConfig.MavenSettingsConfigProvider.class).getAllConfigs().size());
Assert.assertEquals(1, getProvider(JsonConfig.JsonConfigProvider.class).getAllConfigs().size());
Assert.assertEquals(1, getProvider(XmlConfig.XmlConfigProvider.class).getAllConfigs().size());
Assert.assertEquals(1, getProvider(GroovyScript.GroovyConfigProvider.class).getAllConfigs().size());
Assert.assertEquals(1, getProvider(CustomConfig.CustomConfigProvider.class).getAllConfigs().size());
Assert.assertEquals(1, getProvider(JellyTemplateConfig.JellyTemplateConfigProvider.class).getAllConfigs().size());

Assert.assertEquals(6, GlobalConfigFiles.get().getConfigs().size());
assertEquals(
1,
getProvider(j, MavenSettingsConfig.MavenSettingsConfigProvider.class)
.getAllConfigs()
.size());
assertEquals(
1,
getProvider(j, JsonConfig.JsonConfigProvider.class)
.getAllConfigs()
.size());
assertEquals(
1,
getProvider(j, XmlConfig.XmlConfigProvider.class)
.getAllConfigs()
.size());
assertEquals(
1,
getProvider(j, GroovyScript.GroovyConfigProvider.class)
.getAllConfigs()
.size());
assertEquals(
1,
getProvider(j, CustomConfig.CustomConfigProvider.class)
.getAllConfigs()
.size());
assertEquals(
1,
getProvider(j, JellyTemplateConfig.JellyTemplateConfigProvider.class)
.getAllConfigs()
.size());

assertEquals(6, GlobalConfigFiles.get().getConfigs().size());
}

private <T> T getProvider(Class<T> providerClass) {
private <T> T getProvider(JenkinsRule j, Class<T> providerClass) {
return j.getInstance().getExtensionList(providerClass).get(providerClass);
}


@Test
public void testDynamicCreationOfConfigs() {
void testDynamicCreationOfConfigs(JenkinsRule j) {
for (ConfigProvider cp : ConfigProvider.all()) {
Config config = cp.newConfig("myid", "myname", "mycomment", "mycontent");
Assert.assertNotNull(config);
Assert.assertEquals(config.id, "myid");
Assert.assertEquals(config.name, "myname");
Assert.assertEquals(config.comment, "mycomment");
Assert.assertEquals(config.content, "mycontent");
Assert.assertNotNull(config.getProviderId());
assertNotNull(config);
assertEquals("myid", config.id);
assertEquals("myname", config.name);
assertEquals("mycomment", config.comment);
assertEquals("mycontent", config.content);
assertNotNull(config.getProviderId());
}
}

@Test
public void testDynamicCreationOfConfigs2() {
void testDynamicCreationOfConfigs2(JenkinsRule j) {
final String id = "ExtensionPointTestConfigProvider-file-id";

ExtensionPointTestConfig.ExtensionPointTestConfigProvider configProvider = getProvider(ExtensionPointTestConfig.ExtensionPointTestConfigProvider.class);
ExtensionPointTestConfig.ExtensionPointTestConfigProvider configProvider =
getProvider(j, ExtensionPointTestConfig.ExtensionPointTestConfigProvider.class);
Config newConfig = configProvider.newConfig(id);
GlobalConfigFiles globalConfigFiles = j.jenkins.getExtensionList(GlobalConfigFiles.class).get(GlobalConfigFiles.class);
GlobalConfigFiles globalConfigFiles =
j.jenkins.getExtensionList(GlobalConfigFiles.class).get(GlobalConfigFiles.class);
globalConfigFiles.save(newConfig);

Assert.assertEquals(1, GlobalConfigFiles.get().getConfigs(ExtensionPointTestConfig.ExtensionPointTestConfigProvider.class).size());

ExtensionPointTestConfig savedConfig = (ExtensionPointTestConfig) GlobalConfigFiles.get().getConfigs(ExtensionPointTestConfig.ExtensionPointTestConfigProvider.class).iterator().next();
Assert.assertEquals(savedConfig.id, id);
Assert.assertEquals(savedConfig.name, ExtensionPointTestConfig.TEST_NAME_VALUE);
Assert.assertEquals(savedConfig.comment, ExtensionPointTestConfig.TEST_COMMENT_VALUE);
Assert.assertEquals(savedConfig.content, ExtensionPointTestConfig.TEST_CONTENT_VALUE);
Assert.assertEquals(savedConfig.newParam1, ExtensionPointTestConfig.TEST_PARAM_VALUE);
Assert.assertEquals(savedConfig.newParam2, ExtensionPointTestConfig.TEST_PARAM_VALUE);
Assert.assertEquals(savedConfig.newParam3, ExtensionPointTestConfig.TEST_PARAM_VALUE);
Assert.assertNotNull(savedConfig.getProviderId());
assertEquals(
1,
GlobalConfigFiles.get()
.getConfigs(ExtensionPointTestConfig.ExtensionPointTestConfigProvider.class)
.size());

ExtensionPointTestConfig savedConfig = (ExtensionPointTestConfig) GlobalConfigFiles.get()
.getConfigs(ExtensionPointTestConfig.ExtensionPointTestConfigProvider.class)
.iterator()
.next();
assertEquals(id, savedConfig.id);
assertEquals(ExtensionPointTestConfig.TEST_NAME_VALUE, savedConfig.name);
assertEquals(ExtensionPointTestConfig.TEST_COMMENT_VALUE, savedConfig.comment);
assertEquals(ExtensionPointTestConfig.TEST_CONTENT_VALUE, savedConfig.content);
assertEquals(ExtensionPointTestConfig.TEST_PARAM_VALUE, savedConfig.newParam1);
assertEquals(ExtensionPointTestConfig.TEST_PARAM_VALUE, savedConfig.newParam2);
assertEquals(ExtensionPointTestConfig.TEST_PARAM_VALUE, savedConfig.newParam3);
assertNotNull(savedConfig.getProviderId());
}

public static class ExtensionPointTestConfig extends Config {
Expand Down Expand Up @@ -117,7 +148,15 @@ public ExtensionPointTestConfig(String id, String name, String comment, String c
newParam3 = TEST_PARAM_VALUE;
}

public ExtensionPointTestConfig(String id, String name, String comment, String content, String providerId, String newParam1, String newParam2, String newParam3) {
public ExtensionPointTestConfig(
String id,
String name,
String comment,
String content,
String providerId,
String newParam1,
String newParam2,
String newParam3) {
super(id, name, comment, content, providerId);
this.newParam1 = newParam1;
this.newParam2 = newParam2;
Expand All @@ -144,7 +183,15 @@ public String getDisplayName() {
@NonNull
@Override
public Config newConfig(@NonNull String id) {
return new ExtensionPointTestConfig(id, TEST_NAME_VALUE, TEST_COMMENT_VALUE, TEST_CONTENT_VALUE, getProviderId(), TEST_PARAM_VALUE, TEST_PARAM_VALUE, TEST_PARAM_VALUE);
return new ExtensionPointTestConfig(
id,
TEST_NAME_VALUE,
TEST_COMMENT_VALUE,
TEST_CONTENT_VALUE,
getProviderId(),
TEST_PARAM_VALUE,
TEST_PARAM_VALUE,
TEST_PARAM_VALUE);
}

// ======================
Expand All @@ -157,10 +204,11 @@ protected String getXmlFileName() {
}

static {
Jenkins.XSTREAM.alias("org.jenkinsci.lib.configprovider.ExtensionPointTestConfigProvider", ExtensionPointTestConfigProvider.class);
Jenkins.XSTREAM.alias(
"org.jenkinsci.lib.configprovider.ExtensionPointTestConfigProvider",
ExtensionPointTestConfigProvider.class);
}
// ======================
}

}
}
Original file line number Diff line number Diff line change
@@ -1,60 +1,60 @@
package org.jenkinsci.plugins.configfiles;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.*;

import org.hamcrest.Matchers;
import org.jenkinsci.lib.configprovider.model.Config;
import org.jenkinsci.plugins.configfiles.custom.CustomConfig;
import org.junit.Assert;
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;

/**
* Created by domi on 18/01/17.
*/
public class ConfigFileStoreTest {
@WithJenkins
class ConfigFileStoreTest {

private static final String CONFIG_ID = "myid";

@Rule
public JenkinsRule j = new JenkinsRule();

@Test
public void testSaveGlobalConfigFiles() {
GlobalConfigFiles store = j.getInstance().getExtensionList(GlobalConfigFiles.class).get(GlobalConfigFiles.class);
Assert.assertTrue(store.getConfigs().isEmpty());
void testSaveGlobalConfigFiles(JenkinsRule j) {
GlobalConfigFiles store =
j.getInstance().getExtensionList(GlobalConfigFiles.class).get(GlobalConfigFiles.class);
assertTrue(store.getConfigs().isEmpty());

CustomConfig config = new CustomConfig(CONFIG_ID, "name", "comment", "content");
store.save(config);

Assert.assertEquals(1, store.getConfigs().size());
assertEquals(1, store.getConfigs().size());
Config savedConfig = store.getConfigs().iterator().next();
Assert.assertEquals("name", savedConfig.name);
Assert.assertEquals("comment", savedConfig.comment);
Assert.assertEquals("content", savedConfig.content);
assertEquals("name", savedConfig.name);
assertEquals("comment", savedConfig.comment);
assertEquals("content", savedConfig.content);

CustomConfig anotherConfig = new CustomConfig("anotherid", "name", "comment", "content");
store.save(anotherConfig);

Assert.assertEquals(2, store.getConfigs().size());
assertEquals(2, store.getConfigs().size());

// Update config. Check the correct config is updated with proper values
config = new CustomConfig(CONFIG_ID, "new name", "new comment", "new content");
store.save(config);

Assert.assertEquals(2, store.getConfigs().size());
assertEquals(2, store.getConfigs().size());
savedConfig = store.getById(CONFIG_ID);
Assert.assertEquals("new name", savedConfig.name);
Assert.assertEquals("new comment", savedConfig.comment);
Assert.assertEquals("new content", savedConfig.content);
assertEquals("new name", savedConfig.name);
assertEquals("new comment", savedConfig.comment);
assertEquals("new content", savedConfig.content);

// Remove config. Check the correct one is removed
store.remove(savedConfig.id);
Assert.assertEquals(1, store.getConfigs().size());
Assert.assertThat(store.getById(anotherConfig.id), Matchers.is(anotherConfig));
Assert.assertNull(store.getById(savedConfig.id));
assertEquals(1, store.getConfigs().size());
assertThat(store.getById(anotherConfig.id), Matchers.is(anotherConfig));
assertNull(store.getById(savedConfig.id));

store.remove(anotherConfig.id);
Assert.assertEquals(0, store.getConfigs().size());
assertEquals(0, store.getConfigs().size());
}

}
Loading