Skip to content

wisp-containers-testing

Create, start and stop containers for use in tests.

Usage

The following example creates the “alpine” container, starts and stops it.

val container = Container {
  withImage("alpine")
  withName("alpine")
}

val composer = Composer("alpine", container)
composer.start()
assertTrue(composer.running.get())
composer.stop()
assertFalse(composer.running.get())

The following example composes Kafka and Zookeeper containers for testing. Kafka is exposed to the jUnit test via 127.0.0.1:9102. In this example, Zookeeper is not exposed to the test.

val zkContainer = Container {
  withImage("confluentinc/cp-zookeeper")
  withName("zookeeper")
  withEnv("ZOOKEEPER_CLIENT_PORT=2181")
}
val kafka = Container {
  withImage("confluentinc/cp-kafka")
  withName("kafka")
  withExposedPorts(ExposedPort.tcp(port))
  withPortBindings(
    Ports().apply {
      bind(ExposedPort.tcp(9102), Ports.Binding.bindPort(9102))
    }
  )
  withEnv(
    "KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181",
    "KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9102"
  )
}
val composer = Composer("e-kafka", zkContainer, kafka)
composer.start()