Packages

Extensible Elixir OTP Application for storing files through a unified API. Backends currently exist for the local filesystem, SFTP and the Amazon S3 API.

Current section

Files

Jump to
belt test ecto config_test.exs
Raw

test/ecto/config_test.exs

defmodule Belt.Test.Ecto.Config do
use ExUnit.Case
alias Belt.Ecto.Config
test "cast" do
config = get_config!()
serialized_config = get_serialized_config!()
assert Config.cast(config) == {:ok, config}
assert Config.cast(serialized_config) == :error
assert Config.cast(%{some_key: :foo}) == :error
assert Config.cast(nil) == :error
end
test "cast!" do
config = get_config!()
assert Config.cast!(config)
assert_raise Ecto.CastError, fn ->
Config.cast!(%{some_key: :foo})
end
assert_raise Ecto.CastError, fn ->
Config.cast!(nil)
end
end
test "load" do
config = get_config!()
serialized_config = get_serialized_config!()
assert Config.load(serialized_config) == {:ok, config}
assert Config.load("") == :error
end
test "dump" do
config = get_config!()
serialized_config = get_serialized_config!()
assert Config.dump(config) == serialized_config
assert Config.dump(serialized_config) == :error
end
defp get_config!() do
{:ok, config} = Belt.Provider.Filesystem.new(
directory: ".", base_url: "https://example.org/")
config
end
defp get_serialized_config!() do
%{"provider" => "belt_atom::Elixir.Belt.Provider.Filesystem",
"directory" => ".",
"base_url" => "https://example.org/"}
end
end