class DeclarativeAuthorization::Test::Helpers::RoleTestGenerator

Public Class Methods

new(test_class, role) click to toggle source
# File lib/declarative_authorization/test/helpers.rb, line 76
def initialize(test_class, role)
  @test_class = test_class
  @role = role
end

Public Instance Methods

allowed(options) click to toggle source
# File lib/declarative_authorization/test/helpers.rb, line 91
def allowed(options)
  if options[:when]
    privilege(options[:when]) { allowed(options) }
  else
    Blockenspiel.invoke(Proc.new {allowed(options)}, PrivilegeTestGenerator.new(@test_class, @role, nil))
  end
end
denied(options) click to toggle source
# File lib/declarative_authorization/test/helpers.rb, line 99
def denied(options)
  if options[:when]
    privilege(options[:when]) { denied(options) }
  else
    Blockenspiel.invoke(Proc.new {denied(options)}, PrivilegeTestGenerator.new(@test_class, @role, nil))
  end
end
privilege(privilege, &block) click to toggle source
# File lib/declarative_authorization/test/helpers.rb, line 81
def privilege(privilege, &block)
  privileges = [privilege].flatten.uniq

  unless privileges.all? { |privilege| [:hidden, :read, :write, :write_without_delete].include?(privilege) }
    raise "Privilege (:when) must be :hidden, :read, :write_without_delete, or :write. Found #{privilege.inspect}."
  end

  Blockenspiel.invoke(block, PrivilegeTestGenerator.new(@test_class, @role, privileges))
end