Intersmash test cases.
The goal is to have a common repository for Intersmash test cases, which are executed to verify complex interoperability scenarios between Middleware runtimes in Cloud platform environments, most notably OpenShift.
Intersmash Tests leverage the Intersmash framework to provision the tested scenarios, including both service runtimes - like Kafka, Infinispan or Keycloak - and Intersmash Applications, for instance WildFly deployments.
The tests in the repository can be executed by enabling specific Maven profiles in order to use either community or product deliverables, like images or Helm Charts, see the Profiles section.
Tests are executed by default on Kubernetes, and with community bits for applications, with the Maven Failsafe Plugin using the global-test.properties file to configure Intersmash framework in order to employ Kubernetes specifics, like for example the default OLM namespace and catalog source.
The simplest test execution can be performed via a mvn clean verify command.
This test validates an interoperability use case based on a WildFly (JBoss EAP XP) MicroProfile Reactive Messaging application, which interacts with a remote Kafka (Streams for Apache Kafka) service. See the WildflyMicroProfileReactiveMessagingPerConnectorSecuredIT class Javadoc for more details.
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application, which
uses the elytron-oidc-client layer configuration to interact with a remote Keycloak (Red Hat Build of Keycloak) service
and secure resources via SSO.
See the WildflyWithElytronOidcClientIT class Javadoc for more details.
WildFly (JBoss EAP and JBoss EAP XP) Elytron OIDC client + Keycloak (Red Hat Build of Keycloak) with Dynamic OIDC Client Registration
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application, which
uses the elytron-oidc-client layer configuration to interact with a remote Keycloak (Red Hat Build of Keycloak) service
and secure resources via SSO.
This test is a variation over WildflyWithElytronOidcClientIT and introduces "Dynamic OIDC Client Registration" to automatically register an OIDC Client in Keycloak (see oidc.sh and oidc-keycloak-hooks.sh for the details).
See the WildflyWithElytronOidcDynamicClientIT class Javadoc for more details.
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application, which
uses the keycloak-saml layer configuration to interact with a remote Keycloak (Red Hat Build of Keycloak) service
and secure resources via SSO.
See the WildFlyKeycloakSamlAdapterIT class Javadoc for more details.
WildFly (JBoss EAP and JBoss EAP XP) EJB + SAML Adapter client + Keycloak (Red Hat Build of Keycloak)
This test is basically the same as WildFly (JBoss EAP and JBoss EAP XP) SAML Adapter client + Keycloak (Red Hat Build of Keycloak) and also tests that the EJB layer is correctly configured and authentication and authorization data is propagated to the EJB layer; See the WildFlyKeycloakSamlAdapterEjbIT class Javadoc for more details.
WildFly (JBoss EAP and JBoss EAP XP) EJB + Bootable Jar + SAML Adapter client + Keycloak (Red Hat Build of Keycloak)
This test is a simplified version of WildFly (JBoss EAP and JBoss EAP XP) EJB + SAML Adapter client + Keycloak (Red Hat Build of Keycloak) which removes signing for SAML requests and responses; it packages and deploys the application as a Bootable Jar; the peculiarity of this test is that the deployed application uses layer keycloak-client-saml-ejb which is meant for bare-metal usage not Kubernetes/OpenShift, and expects it to work since there is no reason why it should not;
See the WildFlyBootableJarKeycloakSamlAdapterEjbHelmIT class Javadoc for more details.
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application configured with EJB timers backed by a PostgreSQL database. The test creates an EJB timer and verifies that the timestamp stored in the database has the correct time format (zero milliseconds). See the WildflyPostgresqlTimerIT class Javadoc for more details.
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application configured
with EJB timers backed by a PostgreSQL database. The test terminates the PostgreSQL pod, then calls the EJB TimerService
and verifies that no NullPointerException is thrown when the timer service fails.
See the WildflyPostgresqlTimerServiceFailsIT class Javadoc for more details.
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application configured
with EJB timers backed by a PostgreSQL database. The test terminates the PostgreSQL pod and verifies that no
NullPointerException is thrown in the WildFly application logs.
See the WildflyPostgresqlTimerTerminatedIT class Javadoc for more details.
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application, which is configured to offload web cache data to a remote Infinispan (Red Hat Data Grid) service. See the WildflyWebCacheOffloadToInfinispanIT class Javadoc for more details.
This test validates an interoperability use case based on a WildFly (JBoss EAP and JBoss EAP XP) application, which is configured to use an SSL-secured ActiveMQ Artemis message broker for encrypted messaging communication. See the WildflyActiveMQArtemisSslIT class Javadoc for more details.
The default test execution will exclude tests that are expected to run on OpenShift only, as for instance those that involve an s2i build.
By default, i.e. when no profiles are enabled, the Maven Failsafe Plugin is configured to use the global-test.openshift.properties file, so that the Intersmash framework will run tests on OpenShift, and leverage OpenShift cluster specifics - like the default OLM namespace and catalog source.
Tests involving WildFly and the related products (i.e. JBoss EAP and JBoss EAP XP) are executed by using the community version of the involved applications (WildFly) and cloud related deliverables, e.g.: images, Helm Charts etc. by default.
Such values can be overridden via system properties.
wildfly-target-distribution.jboss-eap
When this profile is enabled, application descriptors that implement the WildflyApplicationConfiguration interface will generate additional Maven args that will be forwarded to a remote s2i build, so that the tested application will be built accordingly. Additionally, the Maven Failsafe Plugin will use the global-test.jboss-eap.openshift.properties defaults file in order to configure the Intersmash framework, so that JBoss EAP cloud deliverables - e.g.: images and Helm Charts - will be used during the test execution.
Such values can be overridden via system properties.
wildfly-target-distribution.jboss-eap-xp
When this profile is enabled, application descriptors that implement the WildflyApplicationConfiguration interface will generate additional Maven args that will be forwarded to a remote s2i build, so that the tested application will be built accordingly. Additionally, the Maven Failsafe Plugin will use the global-test.jboss-eap-xp.openshift.properties file in order to configure the Intersmash framework, so that JBoss EAP XP cloud deliverables - e.g.: images and Helm Charts - will be used during the test execution.
wildfly-target-distribution.jboss-eap-xp.merged-channel
Similar to wildfly-target-distribution.jboss-eap-xp but when forwarded to the remote s2i build, it will enable
a dedicated profile to provision the tested JBoss EAP XP application by using a single - i.e. merged - channel
manifest, as when testing JBoss EAP candidate releases.
Such values can be overridden via system properties.
IMPORTANT:
- When using
-Pwildfly-target-distribution.jboss-eapthe JBoss EAP 8.1 Beta GA deliverables will be used by default, since JBoss EAP 8.1.0 is still not available. - When using
-Pwildfly-target-distribution.jboss-eap-xpthe JBoss EAP XP 5.x GA deliverables will be used by default, since JBoss EAP XP 6 is still not available.
This module contains annotations used to decorate test classes, specifically JUnit 5 @Tag Java interfaces which can be
used to selectively execute groups of tests.
This module contains the actual Intersmash tests, i.e. integration tests that verify runtimes interoperability scenarios on OpenShift.
Utility module that holds the resources needed to perform code style validation and formatting.