Packages
espec
1.6.1
1.10.0
1.9.2
1.9.1
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
0.8.28
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.2
0.4.1
0.4.0
0.3.7
0.3.5
0.3.0
0.2.0
0.1.0
BDD testing framework for Elixir inspired by RSpec.
Current section
Files
Jump to
Current section
Files
lib/espec/allow_to.ex
defmodule ESpec.AllowTo do
@moduledoc """
Defines `to/2` function which makes the mock.
"""
alias ESpec.Mock
@doc "Makes specific mock with ESpec.Mock.expect/3."
def to({:accept, name, function}, {__MODULE__, module}) when is_atom(name) and is_atom(module) do
Mock.expect(module, name, function, [])
end
def to({:accept, name, function}, {__MODULE__, {__MODULE__, module}}) when is_atom(name) and is_atom(module) do
Mock.expect(module, name, function, [])
end
def to({:accept, name, function, meck_options}, {__MODULE__, module})
when is_atom(name) and is_atom(module) and is_list(meck_options) do
Mock.expect(module, name, function, meck_options)
end
def to({:accept, name, function, meck_options}, {__MODULE__, {__MODULE__, module}})
when is_atom(name) and is_atom(module) and is_list(meck_options) do
Mock.expect(module, name, function, meck_options)
end
def to({:accept, list}, {__MODULE__, module}) when is_list(list) and is_atom(module) do
mock_list(module, list)
end
def to({:accept, list}, {__MODULE__, {__MODULE__, module}}) when is_list(list) and is_atom(module) do
mock_list(module, list)
end
def to({:accept, list, meck_options}, {__MODULE__, module})
when is_list(list) and is_list(meck_options) and is_atom(module) do
mock_list(module, list, meck_options)
end
def to({:accept, list, meck_options}, {__MODULE__, {__MODULE__, module}})
when is_list(list) and is_list(meck_options) and is_atom(module) do
mock_list(module, list, meck_options)
end
def to({:accept, name}, {__MODULE__, module}) when is_atom(name) and is_atom(module) do
Mock.expect(module, name, fn -> nil end, [])
Mock.expect(module, name, fn _ -> nil end, [])
end
def to({:accept, name}, {__MODULE__, {__MODULE__, module}}) when is_atom(name) and is_atom(module) do
Mock.expect(module, name, fn -> nil end, [])
Mock.expect(module, name, fn _ -> nil end, [])
end
defp mock_list(module, list, meck_options \\ []) do
if Keyword.keyword?(list) do
Enum.each(list, fn {name, function} ->
Mock.expect(module, name, function, meck_options)
end)
else
Enum.each(list, &Mock.expect(module, &1, fn -> nil end, meck_options))
Enum.each(list, &Mock.expect(module, &1, fn _ -> nil end, meck_options))
end
end
end