Sha256: 53ae2f519921f9da9422c9fd5da39eba32968d3246a23565e676c2e900291c60

Contents?: true

Size: 1.65 KB

Versions: 3

Compression:

Stored size: 1.65 KB

Contents

require File.dirname(__FILE__) + '/test_helper'

class HasPermissionTest < Test::Unit::TestCase
  context "model instance" do
    setup do
      @model = Model.new
    end
    
    should "not intercept method" do
      assert_equal "no permission", @model.some_method
    end
    
    should "intercept method" do
      assert_equal "with permission", @model.with_permission(nil).some_method
    end
    
    should "use model id" do
      assert_equal @model.id, @model.with_permission(nil).id
    end
    
    should "use model to_param" do
      assert_equal @model.to_param, @model.with_permission(nil).to_param
    end
    
    should "use model class" do
      assert_equal @model.class, @model.with_permission(nil).class
    end
    
    should "use model ==" do
      assert @model.with_permission(nil) == @model
    end
    
    should "use model eql?" do
      assert @model.with_permission(nil).eql?(@model)
    end
    
  end

  context "model class" do
    should "not intercept method" do
      assert_equal ["no permission"], Model.all
    end
    
    should "intercept method" do
      assert_equal ["with permission"], Model.with_permission(nil).all
    end
  end
  
  should "use default namespace setting" do
    assert_equal Permission::ModelPermission, Model.permission_class
  end
  
  should "override default namespace setting" do
    assert_equal ModelBPermission, ModelB.permission_class
  end
  
  should "use class to_s method" do
    assert_equal Model.to_s, Model.with_permission(nil).to_s
  end
  
  should "use class class method" do
    assert_equal Model.class, Model.with_permission(nil).class
  end
  
  # TODO need to test proxy associations somehow
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
johnsbrn-has_permission-0.1.1 test/has_permission_test.rb
johnsbrn-has_permission-0.1.3 test/has_permission_test.rb
johnsbrn-has_permission-0.1.4 test/has_permission_test.rb