Koans about processes including infrastructure.

This commit is contained in:
Felipe Sere
2016-03-06 21:27:51 +00:00
parent f2b4cec409
commit c450cc3b19
6 changed files with 111 additions and 5 deletions

View File

@@ -1,4 +1,6 @@
defmodule BlankAssertions do
require ExUnit.Assertions
defmacro assert(expr) do
if contains_blank?(expr) do
code = Macro.escape(expr)
@@ -25,6 +27,19 @@ defmodule BlankAssertions do
end
end
defmacro assert_receive(expr) do
if contains_blank?(expr) do
code = Macro.escape(expr)
quote do
raise ExUnit.AssertionError, expr: unquote(code)
end
else
quote do
ExUnit.Assertions.assert_receive(unquote(expr), 100)
end
end
end
def assert(value, opts) do
ExUnit.Assertions.assert(value, opts)
end
@@ -33,6 +48,10 @@ defmodule BlankAssertions do
ExUnit.Assertions.refute(value, opts)
end
def flunk(message \\ "Flunked!") do
assert false, message: message
end
defp contains_blank?(expr) do
{_, blank} = Macro.prewalk(expr, false, &blank?/2)
blank