C0 code coverage information

Generated on Sun Oct 05 08:42:20 +0800 2008 with rcov 0.8.1.2


Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
Name Total lines Lines of code Total coverage Code coverage
app/models/group.rb 107 95
57.9%  
52.6%  
  1 class Group < ActiveRecord::Base
  2   validates_presence_of     :name
  3   validates_length_of       :name,    :within => 1..40
  4   validates_length_of       :desc,    :maximum => 100
  5 
  6   before_destroy :check_system_group
  7   before_save :check_parent
  8 
  9   acts_as_tree :order => "id"
 10 
 11   has_many :group_roles
 12   has_many :roles, :through => :group_roles
 13   has_many :user_group_roles, :through => :group_roles
 14   # has_many :users, :through => :user_group_roles
 15   has_many :sub_groups, :class_name => 'Group', :foreign_key => 'parent_id'
 16   belongs_to :parent_group, :class_name => 'Group', :foreign_key => 'parent_id'
 17   has_many :users, :class_name => 'User',
 18            :finder_sql => 'SELECT * FROM users
 19                             WHERE
 20                               users.id IN
 21                               (SELECT user_group_roles.user_id FROM user_group_roles
 22                                  WHERE
 23                                    user_group_roles.group_role_id IN
 24                                    (SELECT group_roles.id FROM group_roles
 25                                       WHERE
 26                                         group_roles.group_id = #{id}))
 27                             ORDER BY users.id;',
 28            :counter_sql => 'SELECT count(*) FROM users
 29                             WHERE
 30                               users.id IN
 31                               (SELECT user_group_roles.user_id FROM user_group_roles
 32                                  WHERE
 33                                    user_group_roles.group_role_id IN
 34                                    (SELECT group_roles.id FROM group_roles
 35                                       WHERE
 36                                         group_roles.group_id = #{id}));'
 37 
 38   def all_users
 39     us = users
 40     sub_groups.each do |g|
 41       us += g.all_users
 42     end
 43     return us.uniq.sort{|x,y| x.id <=> y.id }
 44   end
 45 
 46   def all_subgroups
 47     sg = sub_groups
 48     sub_groups.each do |g|
 49       sg += g.all_subgroups
 50     end
 51     return sg.uniq.sort{|x,y| x.id <=> y.id }
 52   end
 53 
 54   def add_role(role)
 55     begin
 56       self.roles << role
 57       self.save
 58     rescue ErrorHelper::DefenceError
 59       return false
 60     end
 61     return true
 62   end
 63 
 64   def remove_role(role, force)
 65     gr = GroupRole.find(:first, :conditions => ["group_id = " + self.id.to_s + " AND role_id = " + role.id.to_s])
 66     if force === false
 67       if gr != nil
 68         raise(GroupsHelper::RemoveRoleError, "Error") unless gr.users.empty?
 69       end
 70     end
 71     gr.destroy
 72   end
 73 
 74   def self.unattached_roles(group_id, group_role_id = nil)
 75     conditions = ''
 76     GroupRole.find(:all, :conditions => 'group_id = ' + group_id +
 77                    (group_role_id.blank? ? "" : (" AND id <> " + group_role_id)) ).each {|group_role|
 78         conditions += ' AND ' unless conditions.blank?
 79         conditions += 'id <> ' + group_role.role.id.to_s
 80     }
 81     @roles = Role.find(:all, :order => 'id asc', :conditions => conditions)
 82     return @roles
 83   end
 84 private
 85   def check_system_group
 86     raise ErrorHelper::DefenceError, l(:groups_delete_system_group_error) if kind == 1
 87   end
 88   def check_parent
 89     # return true if self.kind == 1
 90     raise(ErrorHelper::DefenceError, "Error") if parent_id == id
 91 
 92     if id == 1
 93       if parent_id == 0
 94         return true
 95       else
 96         raise ErrorHelper::DefenceError, "Root group's parent_id must be set as 0!"
 97       end
 98     end
 99     if self.parent_id.blank?
100       self.parent_id = 1
101     end
102 
103     parent = Group.find(:first, :conditions => ["id = ?", self.parent_id])
104     raise(ErrorHelper::DefenceError, "Error") if parent == nil
105     raise(ErrorHelper::DefenceError, "Error") if all_subgroups.include?(parent)
106   end
107 end

Generated using the rcov code coverage analysis tool for Ruby version 0.8.1.2.

Valid XHTML 1.0! Valid CSS!