Packages

Use CommandedUniquenessMiddleware to ensure short-term value uniqueness, usually during Commanded command dispatch.

Current section

Files

Jump to
commanded_uniqueness_middleware test support test_adapter.ex
Raw

test/support/test_adapter.ex

defmodule Commanded.Middleware.Uniqueness.TestAdapter do
@behaviour Commanded.Middleware.Uniqueness.Adapter
def child_spec do
%{
id: :some_id,
start: {Module, :start, [opt1: "cool_value"]}
}
end
def claim(:name, :a_new_value, :non_default_part), do: :ok
def claim(:name, :a_new_value, Commanded.Middleware.Uniqueness), do: :ok
def claim(:name, :claimed_value, Commanded.Middleware.Uniqueness), do: {:error, :already_exists}
def claim(:name, :error, Commanded.Middleware.Uniqueness), do: {:error, :unknown_error}
def claim(:name, :a_new_value, :an_id, :non_default_part), do: :ok
def claim(:name, :a_new_value, :an_id, Commanded.Middleware.Uniqueness), do: :ok
def claim(:name, :claimed_value, :an_id, Commanded.Middleware.Uniqueness),
do: {:error, :already_exists}
def claim(:name, :error, :an_id, Commanded.Middleware.Uniqueness), do: {:error, :unknown_error}
def release(:name, :a_claimed_value, :an_id, :non_default_part), do: :ok
def release(:name, :a_claimed_value, :an_id, Commanded.Middleware.Uniqueness), do: :ok
def release(:name, :a_claimed_value, :an_another_id, Commanded.Middleware.Uniqueness),
do: {:error, :claimed_by_another_owner}
def release(:name, :error, :an_id, Commanded.Middleware.Uniqueness),
do: {:error, :unknown_error}
def release_by_owner(:name, :an_id, :non_default_part), do: :ok
def release_by_owner(:name, :an_id, Commanded.Middleware.Uniqueness), do: :ok
def release_by_owner(:name, :error, Commanded.Middleware.Uniqueness),
do: {:error, :unknown_error}
def release_by_value(:name, :a_claimed_value, :non_default_part), do: :ok
def release_by_value(:name, :a_claimed_value, Commanded.Middleware.Uniqueness), do: :ok
def release_by_value(:name, :error, Commanded.Middleware.Uniqueness),
do: {:error, :unknown_error}
end