ActiveRecord::Base.send :include, StadigTech::Acts::ValidList class Test::Unit::TestCase def self.test_as_valid_list(existing = nil) self.class_eval do def class_name self.class.name[0,self.class.name.length - 4].underscore end def test_clean assert_valid self.send("clean_#{class_name}") end def test_name_present assert_invalid self.send("clean_#{class_name}"), :name, nil, '', ' ' end def test_name_unique assert_invalid self.send("clean_#{class_name}"), :name, self.send("#{class_name.pluralize}", :existing).name end def test_acts_as_paranoid assert Kernel.const_get(self.class_name.camelize.to_sym).paranoid? assert_equal :deleted_on, Kernel.const_get(self.class_name.camelize.to_sym).deleted_attribute end end end end