# encoding: utf-8

# Mocks a valid policy object
#
# @return [Policy::Base::Node]
def valid_policy
  policy = Policy::Base::Node.new
  allow(policy).to receive(:valid?)   { true  }
  allow(policy).to receive(:invalid?) { false }
  policy
end

# Mocks an invalid policy object
#
# @return [Policy::Base::Node]
def invalid_policy(error: "error")
  policy = Policy::Base::Node.new

  add_errors = lambda do
    policy.errors.clear
    policy.errors.add(:base, error)
  end

  allow(policy).to receive(:valid?)   { add_errors.call && false }
  allow(policy).to receive(:invalid?) { add_errors.call && true  }

  policy
end