pl.allegro.tech.servicemesh.envoycontrol.EnvoyControlSmokeTest.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of envoy-control-tests Show documentation
Show all versions of envoy-control-tests Show documentation
Production-ready Control Plane for Service Mesh based on Envoy Proxy.
The newest version!
package pl.allegro.tech.servicemesh.envoycontrol
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.RegisterExtension
import pl.allegro.tech.servicemesh.envoycontrol.assertions.untilAsserted
import pl.allegro.tech.servicemesh.envoycontrol.config.Ads
import pl.allegro.tech.servicemesh.envoycontrol.config.AdsWithNoDependencies
import pl.allegro.tech.servicemesh.envoycontrol.config.AdsWithStaticListeners
import pl.allegro.tech.servicemesh.envoycontrol.config.DeltaAds
import pl.allegro.tech.servicemesh.envoycontrol.config.Xds
import pl.allegro.tech.servicemesh.envoycontrol.config.consul.ConsulExtension
import pl.allegro.tech.servicemesh.envoycontrol.config.envoy.EnvoyExtension
import pl.allegro.tech.servicemesh.envoycontrol.config.envoycontrol.EnvoyControlExtension
import pl.allegro.tech.servicemesh.envoycontrol.config.service.EchoServiceExtension
class AdsWithNoDependenciesEnvoyControlSmokeTest : EnvoyControlSmokeTest {
companion object {
@JvmField
@RegisterExtension
val consul = ConsulExtension()
@JvmField
@RegisterExtension
val envoyControl = EnvoyControlExtension(consul)
@JvmField
@RegisterExtension
val service = EchoServiceExtension()
@JvmField
@RegisterExtension
val envoy = EnvoyExtension(envoyControl, service, config = AdsWithNoDependencies)
}
override fun consul() = consul
override fun envoyControl() = envoyControl
override fun service() = service
override fun envoy() = envoy
}
class AdsWithStaticListenersEnvoyControlSmokeTest : EnvoyControlSmokeTest {
companion object {
@JvmField
@RegisterExtension
val consul = ConsulExtension()
@JvmField
@RegisterExtension
val envoyControl = EnvoyControlExtension(consul)
@JvmField
@RegisterExtension
val service = EchoServiceExtension()
@JvmField
@RegisterExtension
val envoy = EnvoyExtension(envoyControl, service, config = AdsWithStaticListeners)
}
override fun consul() = consul
override fun envoyControl() = envoyControl
override fun service() = service
override fun envoy() = envoy
}
class AdsEnvoyControlSmokeTest : EnvoyControlSmokeTest {
companion object {
@JvmField
@RegisterExtension
val consul = ConsulExtension()
@JvmField
@RegisterExtension
val envoyControl = EnvoyControlExtension(consul)
@JvmField
@RegisterExtension
val service = EchoServiceExtension()
@JvmField
@RegisterExtension
val envoy = EnvoyExtension(envoyControl, service, config = Ads)
}
override fun consul() = consul
override fun envoyControl() = envoyControl
override fun service() = service
override fun envoy() = envoy
}
class DeltaAdsEnvoyControlSmokeTest : EnvoyControlSmokeTest {
companion object {
@JvmField
@RegisterExtension
val consul = ConsulExtension()
@JvmField
@RegisterExtension
val envoyControl = EnvoyControlExtension(consul)
@JvmField
@RegisterExtension
val service = EchoServiceExtension()
@JvmField
@RegisterExtension
val envoy = EnvoyExtension(envoyControl, service, config = DeltaAds)
}
override fun consul() = consul
override fun envoyControl() = envoyControl
override fun service() = service
override fun envoy() = envoy
}
class XdsEnvoyControlSmokeTest : EnvoyControlSmokeTest {
companion object {
@JvmField
@RegisterExtension
val consul = ConsulExtension()
@JvmField
@RegisterExtension
val envoyControl = EnvoyControlExtension(consul)
@JvmField
@RegisterExtension
val service = EchoServiceExtension()
@JvmField
@RegisterExtension
val envoy = EnvoyExtension(envoyControl, service, config = Xds)
}
override fun consul() = consul
override fun envoyControl() = envoyControl
override fun service() = service
override fun envoy() = envoy
}
interface EnvoyControlSmokeTest {
fun consul(): ConsulExtension
fun envoyControl(): EnvoyControlExtension
fun service(): EchoServiceExtension
fun envoy(): EnvoyExtension
@Test
fun `should create a server listening on a port`() {
untilAsserted {
// when
val ingressRoot = envoy().ingressOperations.callLocalService("/")
// then
assertThat(ingressRoot.code).isEqualTo(200)
}
}
}