Skip to content

Commit 8e925f6

Browse files
authored
Add methods on ContainerState (#441)
1 parent ea30abe commit 8e925f6

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/main/scala/zio/testcontainers/ZIOTestcontainers.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package zio.testcontainers
22

33
import com.dimafeng.testcontainers.{DockerComposeContainer, SingleContainer}
4-
import org.testcontainers.containers.{ComposeContainer, GenericContainer => JavaGenericContainer}
4+
import org.testcontainers.containers.{ComposeContainer, ContainerState, GenericContainer => JavaGenericContainer}
55
import org.testcontainers.lifecycle.Startable
66
import zio.{Scope, Tag, UIO, ULayer, URIO, ZIO, ZLayer}
77

@@ -14,6 +14,13 @@ object ZIOTestcontainers {
1414
port <- ZIO.succeed(container.getServicePort(serviceName, servicePort))
1515
} yield (host, port)
1616

17+
def getHostAndPort(
18+
container: ContainerState,
19+
)(port: Int): UIO[(String, Int)] = for {
20+
host <- ZIO.succeed(container.getHost)
21+
port <- ZIO.succeed(container.getMappedPort(port))
22+
} yield (host, port)
23+
1724
def getHostAndPort(
1825
container: DockerComposeContainer,
1926
)(serviceName: String)(servicePort: Int): UIO[(String, Int)] = for {

src/main/scala/zio/testcontainers/package.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package zio
22

33
import com.dimafeng.testcontainers.{DockerComposeContainer, SingleContainer}
4-
import org.testcontainers.containers.{ComposeContainer, GenericContainer => JavaGenericContainer}
4+
import org.testcontainers.containers.{ComposeContainer, ContainerState, GenericContainer => JavaGenericContainer}
55
import org.testcontainers.lifecycle.Startable
66

77
package object testcontainers {
@@ -13,6 +13,13 @@ package object testcontainers {
1313

1414
}
1515

16+
implicit final class ContainerStateOps(private val self: ContainerState) extends AnyVal {
17+
18+
def getHostAndPort(port: Int): UIO[(String, Int)] =
19+
ZIOTestcontainers.getHostAndPort(self)(port)
20+
21+
}
22+
1623
implicit final class DockerComposeContainerOps(private val container: DockerComposeContainer) extends AnyVal {
1724

1825
def getHostAndPort(serviceName: String)(servicePort: Int): UIO[(String, Int)] =

0 commit comments

Comments
 (0)