Skip to content

Commit b722786

Browse files
authored
Fix LiveTest (#264)
Since jenkinsci/jenkins-test-harness#475 & jenkinsci/jenkins-test-harness#348, you need to call RealJenkinsRule#getUrl after starting Jenkins.
1 parent fb182c9 commit b722786

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

src/test/java/org/jenkinsci/plugins/saml/LiveTest.java

+20-12
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,9 @@ public class LiveTest {
6767

6868
@Test
6969
public void authenticationOK() throws Throwable {
70-
startSimpleSAML(rr.getUrl().toString());
71-
String idpMetadata = readIdPMetadataFromURL();
72-
rr.then(new AuthenticationOK(idpMetadata));
70+
then(() -> new AuthenticationOK(readIdPMetadataFromURL()));
7371
}
72+
7473
private static class AuthenticationOK implements RealJenkinsRule.Step {
7574
private final String idpMetadata;
7675
AuthenticationOK(String idpMetadata) {
@@ -87,9 +86,7 @@ public void run(JenkinsRule r) throws Throwable {
8786

8887
@Test
8988
public void authenticationOKFromURL() throws Throwable {
90-
startSimpleSAML(rr.getUrl().toString());
91-
String idpMetadataUrl = createIdPMetadataURL();
92-
rr.then(new AuthenticationOKFromURL(idpMetadataUrl));
89+
then(() -> new AuthenticationOKFromURL(createIdPMetadataURL()));
9390
}
9491
private static class AuthenticationOKFromURL implements RealJenkinsRule.Step {
9592
private final String idpMetadataUrl;
@@ -109,9 +106,7 @@ public void run(JenkinsRule r) throws Throwable {
109106

110107
@Test
111108
public void authenticationOKPostBinding() throws Throwable {
112-
startSimpleSAML(rr.getUrl().toString());
113-
String idpMetadata = readIdPMetadataFromURL();
114-
rr.then(new AuthenticationOKPostBinding(idpMetadata));
109+
then(() -> new AuthenticationOKPostBinding(readIdPMetadataFromURL()));
115110
}
116111
private static class AuthenticationOKPostBinding implements RealJenkinsRule.Step {
117112
private final String idpMetadata;
@@ -129,9 +124,7 @@ public void run(JenkinsRule r) throws Throwable {
129124

130125
@Test
131126
public void authenticationFail() throws Throwable {
132-
startSimpleSAML(rr.getUrl().toString());
133-
String idpMetadata = readIdPMetadataFromURL();
134-
rr.then(new AuthenticationFail(idpMetadata));
127+
then(() -> new AuthenticationFail(readIdPMetadataFromURL()));
135128
}
136129
private static class AuthenticationFail implements RealJenkinsRule.Step {
137130
private final String idpMetadata;
@@ -164,6 +157,21 @@ private String createIdPMetadataURL() {
164157
return "http://" + samlContainer.getHost() + ":" + samlContainer.getFirstMappedPort() + "/simplesaml/saml2/idp/metadata.php";
165158
}
166159

160+
@FunctionalInterface
161+
private interface SupplierWithIO<T> {
162+
T get() throws IOException;
163+
}
164+
165+
private void then(SupplierWithIO<RealJenkinsRule.Step> provider) throws Throwable {
166+
rr.startJenkins();
167+
try {
168+
startSimpleSAML(rr.getUrl().toString());
169+
rr.runRemotely(provider.get());
170+
} finally {
171+
rr.stopJenkins();
172+
}
173+
}
174+
167175
private static void configureAuthorization() {
168176
Jenkins.get().setAuthorizationStrategy(new MockAuthorizationStrategy().
169177
grant(Jenkins.ADMINISTER).everywhere().to("group1").

0 commit comments

Comments
 (0)