提交 136aeb86 编写于 作者: S Stephen Connolly

[JENKINS-37189] Refactor to make more testable

- A pure unit tests will suffice
上级 b1e7c1bf
......@@ -1042,11 +1042,23 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas
* @throws IOException if a connection to the update center server can't be established.
*/
public void checkUpdateCenter(ConnectionCheckJob job, String updateCenterUrl) throws IOException {
testConnection(toUpdateCenterCheckUrl(updateCenterUrl));
}
/**
* Converts an update center URL into the URL to use for checking its connectivity.
* @param updateCenterUrl the URL to convert.
* @return the converted URL.
* @throws MalformedURLException if the supplied URL is malformed.
*/
static URL toUpdateCenterCheckUrl(String updateCenterUrl) throws MalformedURLException {
URL url;
if (updateCenterUrl.startsWith("http://") || updateCenterUrl.startsWith("https://")) {
testConnection(new URL(updateCenterUrl + (updateCenterUrl.indexOf('?') == -1 ? "?uctest" : "&uctest")));
url = new URL(updateCenterUrl + (updateCenterUrl.indexOf('?') == -1 ? "?uctest" : "&uctest"));
} else {
testConnection(new URL(updateCenterUrl));
url = new URL(updateCenterUrl);
}
return url;
}
/**
......
package hudson.model;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class UpdateCenterTest {
@Test
public void toUpdateCenterCheckUrl_http_noQuery() throws Exception {
assertThat(UpdateCenter.UpdateCenterConfiguration.toUpdateCenterCheckUrl(
"http://updates.jenkins-ci.org/update-center.json").toExternalForm(),
is("http://updates.jenkins-ci.org/update-center.json?uctest"));
}
@Test
public void toUpdateCenterCheckUrl_https_noQuery() throws Exception {
assertThat(UpdateCenter.UpdateCenterConfiguration.toUpdateCenterCheckUrl(
"https://updates.jenkins-ci.org/update-center.json").toExternalForm(),
is("https://updates.jenkins-ci.org/update-center.json?uctest"));
}
@Test
public void toUpdateCenterCheckUrl_http_query() throws Exception {
assertThat(UpdateCenter.UpdateCenterConfiguration.toUpdateCenterCheckUrl(
"http://updates.jenkins-ci.org/update-center.json?version=2.7").toExternalForm(),
is("http://updates.jenkins-ci.org/update-center.json?version=2.7&uctest"));
}
@Test
public void toUpdateCenterCheckUrl_https_query() throws Exception {
assertThat(UpdateCenter.UpdateCenterConfiguration.toUpdateCenterCheckUrl(
"https://updates.jenkins-ci.org/update-center.json?version=2.7").toExternalForm(),
is("https://updates.jenkins-ci.org/update-center.json?version=2.7&uctest"));
}
@Test
public void toUpdateCenterCheckUrl_file() throws Exception {
assertThat(UpdateCenter.UpdateCenterConfiguration.toUpdateCenterCheckUrl(
"file://./foo.jar!update-center.json").toExternalForm(),
is("file://./foo.jar!update-center.json"));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册