43 lines
944 B
Elixir
43 lines
944 B
Elixir
defmodule SurvivorTest do
|
|
use ExUnit.Case
|
|
alias ZombieSurvivor.Survivor
|
|
|
|
import Survivor
|
|
|
|
describe "new" do
|
|
test "gives a survivor with a name" do
|
|
assert %Survivor{name: _} = Survivor.new()
|
|
end
|
|
|
|
test "gives a survivor with 0 wounds" do
|
|
assert %Survivor{wounds: 0} = Survivor.new()
|
|
end
|
|
end
|
|
|
|
describe "dead?/1" do
|
|
# TODO: Add property test for this
|
|
test "returns true if a survivor has 2 or more wounds" do
|
|
s = Survivor.new(wounds: 2)
|
|
assert Survivor.dead?(s)
|
|
|
|
s = Survivor.new(wounds: 3)
|
|
assert Survivor.dead?(s)
|
|
end
|
|
|
|
test "returns false if a survivor has less than 2 wounds" do
|
|
s = Survivor.new()
|
|
refute Survivor.dead?(s)
|
|
|
|
s = Survivor.new()
|
|
refute Survivor.dead?(s)
|
|
end
|
|
end
|
|
|
|
describe "max_actions/1" do
|
|
test "returns 3 for a new survivor" do
|
|
s = Survivor.new()
|
|
assert Survivor.max_actions(s) == 3
|
|
end
|
|
end
|
|
end
|