#-- copyright # OpenProject Global Roles Plugin # # Copyright (C) 2010 - 2014 the OpenProject Foundation (OPF) # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 3. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #++ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper") describe Role, :type => :model do describe "class methods" do describe :givable do before (:each) do #this should not be necessary once Role (in a membership) and GlobalRole have #a common ancestor class, e.g. Role (a new one) @mem_role1 = Role.create :name => "mem_role", :permissions => [] @builtin_role1 = Role.new :name => "builtin_role1", :permissions => [] @builtin_role1.builtin = 3 @builtin_role1.save @global_role1 = GlobalRole.create :name => "global_role1", :permissions => [] end it {expect(Role.find_all_givable.size).to eq(1)} it {expect(Role.find_all_givable[0]).to eql @mem_role1} end end describe "instance methods" do before (:each) do @role = Role.new end describe :setable_permissions do before {mock_permissions_for_setable_permissions} it {expect(@role.setable_permissions).to eql([@perm1, @perm2])} end end end