diff options
Diffstat (limited to 'connector/src/test/java')
5 files changed, 190 insertions, 9 deletions
| diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassExecutableModeTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassExecutableModeTest.java index a865c8bd..9f4088f2 100644 --- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassExecutableModeTest.java +++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassExecutableModeTest.java @@ -84,7 +84,7 @@ public class MainClassExecutableModeTest {    public void validConfigLocation() throws Throwable {      SpringBootApplicationInitializer          .main(new String[] { -            "--spring.config.location=src/test/resources/config/junit_config_1_springboot.properties,classpath:/application.properties", +            "--spring.config.location=src/test/resources/config/junit_config_2_springboot.properties,classpath:/application.properties",              "--spring.profiles.active=jUnitTestMode" });      System.out.println("Is started!"); @@ -100,10 +100,14 @@ public class MainClassExecutableModeTest {      final CloseableHttpClient client = builder.build();      Assert.assertNotNull("httpClient", client); -    final HttpUriRequest httpGet1 = new HttpGet("http://localhost:8080/ms_connector/actuator/info"); -    final CloseableHttpResponse httpResp1 = client.execute(httpGet1); -    Assert.assertEquals("http statusCode", 200, httpResp1.getStatusLine().getStatusCode()); - +    final HttpUriRequest httpGetInfo = new HttpGet("http://localhost:8080/ms_connector/actuator/info"); +    final CloseableHttpResponse httpRespInfo = client.execute(httpGetInfo); +    Assert.assertEquals("http statusCode", 200, httpRespInfo.getStatusLine().getStatusCode()); +     +    final HttpUriRequest httpGetHealth = new HttpGet("http://localhost:8080/ms_connector/actuator/health"); +    final CloseableHttpResponse httpRespHealth = client.execute(httpGetHealth); +    Assert.assertEquals("http statusCode", 200, httpRespHealth.getStatusLine().getStatusCode()); +        }  } diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassWebAppModeTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassWebAppModeTest.java index c390184b..07ef4968 100644 --- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassWebAppModeTest.java +++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/MainClassWebAppModeTest.java @@ -120,10 +120,15 @@ public class MainClassWebAppModeTest {      final CloseableHttpClient client = builder.build();      Assert.assertNotNull("httpClient", client); -    final HttpUriRequest httpGet1 = new HttpGet("http://localhost:8080/ms_connector/actuator/info"); -    final CloseableHttpResponse httpResp1 = client.execute(httpGet1); -    Assert.assertEquals("http statusCode", 200, httpResp1.getStatusLine().getStatusCode()); +    final HttpUriRequest httpGetInfo = new HttpGet("http://localhost:8080/ms_connector/actuator/info"); +    final CloseableHttpResponse httpRespInfo = client.execute(httpGetInfo); +    Assert.assertEquals("http statusCode", 200, httpRespInfo.getStatusLine().getStatusCode()); +     +    final HttpUriRequest httpGetHealth = new HttpGet("http://localhost:8080/ms_connector/actuator/health"); +    final CloseableHttpResponse httpRespHealth = client.execute(httpGetHealth); +    Assert.assertEquals("http statusCode", 503, httpRespHealth.getStatusLine().getStatusCode()); +        }  } diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorNoEndpointTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorNoEndpointTest.java new file mode 100644 index 00000000..b04a5bdb --- /dev/null +++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorNoEndpointTest.java @@ -0,0 +1,70 @@ +package at.asitplus.eidas.specific.connector.test.health; + +import java.io.IOException; + +import org.apache.commons.io.IOUtils; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.health.Health; +import org.springframework.http.MediaType; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; + +import at.asitplus.eidas.specific.connector.health.EidasNodeMetadataHealthIndicator; +import okhttp3.mockwebserver.MockResponse; +import okhttp3.mockwebserver.MockWebServer; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration({ +    "/spring/SpringTest-context_healthcheck.xml" }) +@TestPropertySource(locations = {"classpath:/config/junit_config_2_springboot.properties"}) +@WebAppConfiguration +public class EidasNodeMetadataHealthIndicatorNoEndpointTest { +  +  @Autowired EidasNodeMetadataHealthIndicator health; +   +  private static MockWebServer mockWebServer = null; +  +  /** +   * Testclass initializer. +   * +   * @throws IOException In case of an error +   */ +  @BeforeClass +  public static void classInitializer() throws IOException { +    mockWebServer = new MockWebServer(); +    mockWebServer.start(40900); +    mockWebServer.url("/mockup"); + +  } + +  @AfterClass +  public static void resetTestEnviroment() throws NoSuchFieldException, SecurityException, +      IllegalArgumentException, IllegalAccessException, IOException { +    mockWebServer.shutdown(); + +  } +     +  @Test +  public void noEndpointInConfiguration() throws IOException { +    //set-up status +    mockWebServer.enqueue(new MockResponse().setResponseCode(200) +        .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorNoEndpointTest.class +            .getResourceAsStream("/config/log4j.properties"), "UTF-8")) +        .setHeader("Content-Type", MediaType.APPLICATION_XML)); + +    //perform test +    Health status = health.health(); +     +    //validate state +    Assert.assertEquals("wrong healthState", Health.unknown().build().getStatus(), status.getStatus()); +     +  } +   +} diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorTest.java new file mode 100644 index 00000000..b044d4d2 --- /dev/null +++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/health/EidasNodeMetadataHealthIndicatorTest.java @@ -0,0 +1,102 @@ +package at.asitplus.eidas.specific.connector.test.health; + +import java.io.IOException; + +import org.apache.commons.io.IOUtils; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.health.Health; +import org.springframework.http.MediaType; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; + +import at.asitplus.eidas.specific.connector.health.EidasNodeMetadataHealthIndicator; +import okhttp3.mockwebserver.MockResponse; +import okhttp3.mockwebserver.MockWebServer; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration({ +    "/spring/SpringTest-context_healthcheck.xml" }) +@TestPropertySource(locations = {"classpath:/config/junit_config_1_springboot.properties"}) +@WebAppConfiguration +public class EidasNodeMetadataHealthIndicatorTest { +  +  @Autowired EidasNodeMetadataHealthIndicator health; +   +  private static MockWebServer mockWebServer = null; +  +  /** +   * Testclass initializer. +   * +   * @throws IOException In case of an error +   */ +  @BeforeClass +  public static void classInitializer() throws IOException { +    mockWebServer = new MockWebServer(); +    mockWebServer.start(40900); +    mockWebServer.url("/mockup"); + +  } + +  @AfterClass +  public static void resetTestEnviroment() throws NoSuchFieldException, SecurityException, +      IllegalArgumentException, IllegalAccessException, IOException { +    mockWebServer.shutdown(); + +  } +   +  @Test +  public void httpStatusCode500() throws IOException { +    //set-up status +    mockWebServer.enqueue(new MockResponse().setResponseCode(500) +        .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorTest.class +            .getResourceAsStream("/data/metadata_valid.xml"), "UTF-8")) +        .setHeader("Content-Type", MediaType.APPLICATION_XML)); + +    //perform test +    Health status = health.health(); +     +    //validate state +    Assert.assertEquals("wrong healthState", Health.down().build().getStatus(), status.getStatus()); +     +  }  + +  @Test +  public void httpStatusCode200() throws IOException { +    //set-up status +    mockWebServer.enqueue(new MockResponse().setResponseCode(200) +        .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorTest.class +            .getResourceAsStream("/data/metadata_valid.xml"), "UTF-8")) +        .setHeader("Content-Type", MediaType.APPLICATION_XML)); + +    //perform test +    Health status = health.health(); +     +    //validate state +    Assert.assertEquals("wrong healthState", Health.up().build().getStatus(), status.getStatus()); +     +  } +   +  @Test +  public void noXmlResponse() throws IOException { +    //set-up status +    mockWebServer.enqueue(new MockResponse().setResponseCode(200) +        .setBody(IOUtils.toString(EidasNodeMetadataHealthIndicatorTest.class +            .getResourceAsStream("/config/log4j.properties"), "UTF-8")) +        .setHeader("Content-Type", MediaType.APPLICATION_XML)); + +    //perform test +    Health status = health.health(); +     +    //validate state +    Assert.assertEquals("wrong healthState", Health.down().build().getStatus(), status.getStatus()); +     +  } +   +} diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java index a5876169..5f1c5dcf 100644 --- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java +++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/utils/AuthenticationDataBuilderTest.java @@ -51,7 +51,7 @@ import at.gv.egiz.eaaf.modules.pvp2.impl.opensaml.initialize.EaafOpenSaml3xIniti  import net.shibboleth.utilities.java.support.component.ComponentInitializationException;  @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration({ "/applicationContext.xml", "/SpringTest_connector.beans.xml", "/eaaf_core.beans.xml", +@ContextConfiguration({ "/applicationContext.xml", "/spring/SpringTest_connector.beans.xml", "/eaaf_core.beans.xml",      "/eaaf_pvp.beans.xml", "/eaaf_pvp_idp.beans.xml", "/spring/SpringTest-context_simple_storage.xml" })  @ActiveProfiles(profiles = {"deprecatedConfig"})  @WebAppConfiguration | 
