Current section
Files
Jump to
Current section
Files
src/testcontainers_gleam@rabbitmq.erl
-module(testcontainers_gleam@rabbitmq).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/testcontainers_gleam/rabbitmq.gleam").
-export([new/0, with_image/2, with_port/2, with_username/2, with_password/2, with_virtual_host/2, with_cmd/2, with_wait_timeout/2, with_check_image/2, with_reuse/2, build/1, default_image/0, default_port/0, port/1, connection_url/1]).
-export_type([rabbitmq_config/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" RabbitMQ container configuration.\n"
"\n"
" Wraps `Testcontainers.RabbitMQContainer` to provide typed builders\n"
" for a RabbitMQ container. Use `new` to create a default configuration,\n"
" customize with `with_*` functions, then `build` to get a `Container`.\n"
"\n"
" Default image: `rabbitmq:3-alpine`, port: 5672, timeout: 60s,\n"
" credentials: guest/guest, vhost: \"/\".\n"
"\n"
" ## Example\n"
"\n"
" ```gleam\n"
" import testcontainers_gleam\n"
" import testcontainers_gleam/rabbitmq\n"
"\n"
" let config = rabbitmq.new()\n"
" let container = rabbitmq.build(config)\n"
" let assert Ok(running) = testcontainers_gleam.start_container(container)\n"
" let url = rabbitmq.connection_url(running)\n"
" ```\n"
).
-type rabbitmq_config() :: any().
-file("src/testcontainers_gleam/rabbitmq.gleam", 33).
?DOC(
" Create a new RabbitMQ container configuration with defaults.\n"
"\n"
" Default image: `rabbitmq:3-alpine`, port: 5672, timeout: 60s,\n"
" credentials: guest/guest, vhost: \"/\".\n"
).
-spec new() -> rabbitmq_config().
new() ->
'Elixir.Testcontainers.RabbitMQContainer':new().
-file("src/testcontainers_gleam/rabbitmq.gleam", 37).
?DOC(" Override the Docker image.\n").
-spec with_image(rabbitmq_config(), binary()) -> rabbitmq_config().
with_image(Config, Image) ->
'Elixir.Testcontainers.RabbitMQContainer':with_image(Config, Image).
-file("src/testcontainers_gleam/rabbitmq.gleam", 41).
?DOC(" Override the exposed port (default 5672).\n").
-spec with_port(rabbitmq_config(), integer()) -> rabbitmq_config().
with_port(Config, Port) ->
'Elixir.Testcontainers.RabbitMQContainer':with_port(Config, Port).
-file("src/testcontainers_gleam/rabbitmq.gleam", 45).
?DOC(" Override the username (default \"guest\").\n").
-spec with_username(rabbitmq_config(), binary()) -> rabbitmq_config().
with_username(Config, Username) ->
'Elixir.Testcontainers.RabbitMQContainer':with_username(Config, Username).
-file("src/testcontainers_gleam/rabbitmq.gleam", 49).
?DOC(" Override the password (default \"guest\").\n").
-spec with_password(rabbitmq_config(), binary()) -> rabbitmq_config().
with_password(Config, Password) ->
'Elixir.Testcontainers.RabbitMQContainer':with_password(Config, Password).
-file("src/testcontainers_gleam/rabbitmq.gleam", 53).
?DOC(" Override the virtual host (default \"/\").\n").
-spec with_virtual_host(rabbitmq_config(), binary()) -> rabbitmq_config().
with_virtual_host(Config, Vhost) ->
'Elixir.Testcontainers.RabbitMQContainer':with_virtual_host(Config, Vhost).
-file("src/testcontainers_gleam/rabbitmq.gleam", 60).
?DOC(" Set the command to run in the container.\n").
-spec with_cmd(rabbitmq_config(), list(binary())) -> rabbitmq_config().
with_cmd(Config, Cmd) ->
'Elixir.Testcontainers.RabbitMQContainer':with_cmd(Config, Cmd).
-file("src/testcontainers_gleam/rabbitmq.gleam", 64).
?DOC(" Override the wait timeout in milliseconds (default 60000).\n").
-spec with_wait_timeout(rabbitmq_config(), integer()) -> rabbitmq_config().
with_wait_timeout(Config, Timeout) ->
'Elixir.Testcontainers.RabbitMQContainer':with_wait_timeout(Config, Timeout).
-file("src/testcontainers_gleam/rabbitmq.gleam", 68).
?DOC(" Set the regex pattern to validate the image name.\n").
-spec with_check_image(rabbitmq_config(), binary()) -> rabbitmq_config().
with_check_image(Config, Pattern) ->
'Elixir.Testcontainers.RabbitMQContainer':with_check_image(Config, Pattern).
-file("src/testcontainers_gleam/rabbitmq.gleam", 75).
?DOC(" Enable or disable container reuse across test runs.\n").
-spec with_reuse(rabbitmq_config(), boolean()) -> rabbitmq_config().
with_reuse(Config, Reuse) ->
'Elixir.Testcontainers.RabbitMQContainer':with_reuse(Config, Reuse).
-file("src/testcontainers_gleam/rabbitmq.gleam", 78).
?DOC(" Build a `Container` from this RabbitMQ configuration.\n").
-spec build(rabbitmq_config()) -> testcontainers_gleam@container:container().
build(Config) ->
testcontainers_gleam_ffi:build_container(Config).
-file("src/testcontainers_gleam/rabbitmq.gleam", 84).
?DOC(" Get the default Docker image name (without tag).\n").
-spec default_image() -> binary().
default_image() ->
'Elixir.Testcontainers.RabbitMQContainer':default_image().
-file("src/testcontainers_gleam/rabbitmq.gleam", 88).
?DOC(" Get the default port (5672).\n").
-spec default_port() -> integer().
default_port() ->
'Elixir.Testcontainers.RabbitMQContainer':default_port().
-file("src/testcontainers_gleam/rabbitmq.gleam", 92).
?DOC(" Get the host-mapped port for the RabbitMQ container.\n").
-spec port(testcontainers_gleam@container:container()) -> integer().
port(Container) ->
'Elixir.Testcontainers.RabbitMQContainer':port(Container).
-file("src/testcontainers_gleam/rabbitmq.gleam", 96).
?DOC(" Get the RabbitMQ connection URL (e.g. `\"amqp://guest:guest@localhost:32768/\"`).\n").
-spec connection_url(testcontainers_gleam@container:container()) -> binary().
connection_url(Container) ->
'Elixir.Testcontainers.RabbitMQContainer':connection_url(Container).