Skip to content

Commit

Permalink
Fix LiveTest
Browse files Browse the repository at this point in the history
Since jenkinsci/jenkins-test-harness#475 & jenkinsci/jenkins-test-harness#348, you need to call RealJenkinsRule#getUrl after starting Jenkins.
  • Loading branch information
Vlatombe committed Sep 2, 2022
1 parent 59a52e9 commit b833190
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions src/test/java/org/jenkinsci/plugins/saml/LiveTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,9 @@ public class LiveTest {

@Test
public void authenticationOK() throws Throwable {
startSimpleSAML(rr.getUrl().toString());
String idpMetadata = readIdPMetadataFromURL();
rr.then(new AuthenticationOK(idpMetadata));
then(() -> new AuthenticationOK(readIdPMetadataFromURL()));
}

private static class AuthenticationOK implements RealJenkinsRule.Step {
private final String idpMetadata;
AuthenticationOK(String idpMetadata) {
Expand All @@ -87,9 +86,7 @@ public void run(JenkinsRule r) throws Throwable {

@Test
public void authenticationOKFromURL() throws Throwable {
startSimpleSAML(rr.getUrl().toString());
String idpMetadataUrl = createIdPMetadataURL();
rr.then(new AuthenticationOKFromURL(idpMetadataUrl));
then(() -> new AuthenticationOKFromURL(createIdPMetadataURL()));
}
private static class AuthenticationOKFromURL implements RealJenkinsRule.Step {
private final String idpMetadataUrl;
Expand All @@ -109,9 +106,7 @@ public void run(JenkinsRule r) throws Throwable {

@Test
public void authenticationOKPostBinding() throws Throwable {
startSimpleSAML(rr.getUrl().toString());
String idpMetadata = readIdPMetadataFromURL();
rr.then(new AuthenticationOKPostBinding(idpMetadata));
then(() -> new AuthenticationOKPostBinding(readIdPMetadataFromURL()));
}
private static class AuthenticationOKPostBinding implements RealJenkinsRule.Step {
private final String idpMetadata;
Expand All @@ -129,9 +124,7 @@ public void run(JenkinsRule r) throws Throwable {

@Test
public void authenticationFail() throws Throwable {
startSimpleSAML(rr.getUrl().toString());
String idpMetadata = readIdPMetadataFromURL();
rr.then(new AuthenticationFail(idpMetadata));
then(() -> new AuthenticationFail(readIdPMetadataFromURL()));
}
private static class AuthenticationFail implements RealJenkinsRule.Step {
private final String idpMetadata;
Expand Down Expand Up @@ -164,6 +157,21 @@ private String createIdPMetadataURL() {
return "http://" + samlContainer.getHost() + ":" + samlContainer.getFirstMappedPort() + "/simplesaml/saml2/idp/metadata.php";
}

@FunctionalInterface
private interface SupplierWithIO<T> {
T get() throws IOException;
}

private void then(SupplierWithIO<RealJenkinsRule.Step> provider) throws Throwable {
rr.startJenkins();
try {
startSimpleSAML(rr.getUrl().toString());
rr.runRemotely(provider.get());
} finally {
rr.stopJenkins();
}
}

private static void configureAuthorization() {
Jenkins.get().setAuthorizationStrategy(new MockAuthorizationStrategy().
grant(Jenkins.ADMINISTER).everywhere().to("group1").
Expand Down

0 comments on commit b833190

Please sign in to comment.