factories/permission.rb

Summary

Maintainability
A
0 mins
Test Coverage
FactoryGirl.define do

  factory :permission do
    subject {FactoryHelper.rand_bool ? User.find_random : Group.find_random }
    media_resource { MediaResource.find_random }
    after(:build) {|perm| 
      permissions = {:view => FactoryHelper.rand_bool, :edit => FactoryHelper.rand_bool, :manage => FactoryHelper.rand_bool, :download => FactoryHelper.rand_bool}
      perm.set_actions permissions 
    }
  end

  factory :userpermission do
    view {FactoryHelper.rand_bool 1/4.0}
    download { view and FactoryHelper.rand_bool}
    edit {FactoryHelper.rand_bool 1/4.0}
    manage {edit and FactoryHelper.rand_bool}
    user {User.find_random || (FactoryGirl.create :user)} 

    media_resource do 
      MediaResource.find_random || 
        begin
          if FactoryHelper.rand_bool 1.0/3
            FactoryGirl.create :media_set
          else
            FactoryGirl.create :media_entry
          end
        end
    end
  end

  factory :grouppermission do
    view {FactoryHelper.rand_bool 1/4.0}
    download { view and FactoryHelper.rand_bool}
    edit {FactoryHelper.rand_bool 1/4.0}
    manage false

    group {Group.find_random || (FactoryGirl.create :group)}

    media_resource do 
      if FactoryHelper.rand_bool 1.0/3
        FactoryGirl.create :media_set
      else
        FactoryGirl.create :media_entry
      end
    end
  end
  
end