instiki/vendor/rails/actionpack/test/activerecord/active_record_assertions_test.rb
Jacques Distler c358389f25 TeX and CSS tweaks.
Sync with latest Instiki Trunk
(Updates Rails to 1.2.2)
2007-02-09 02:04:31 -06:00

93 lines
2.6 KiB
Ruby

require "#{File.dirname(__FILE__)}/../active_record_unit"
class ActiveRecordAssertionsController < ActionController::Base
self.template_root = "#{File.dirname(__FILE__)}/../fixtures/"
# fail with 1 bad column
def nasty_columns_1
@company = Company.new
@company.name = "B"
@company.rating = 2
render :inline => "snicker...."
end
# fail with 2 bad columns
def nasty_columns_2
@company = Company.new
@company.name = ""
@company.rating = 2
render :inline => "double snicker...."
end
# this will pass validation
def good_company
@company = Company.new
@company.name = "A"
@company.rating = 69
render :inline => "Goodness Gracious!"
end
# this will fail validation
def bad_company
@company = Company.new
render :inline => "Who's Bad?"
end
# the safety dance......
def rescue_action(e) raise; end
end
class ActiveRecordAssertionsControllerTest < ActiveRecordTestCase
fixtures :companies
def setup
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@controller = ActiveRecordAssertionsController.new
super
end
# test for 1 bad apple column
def test_some_invalid_columns
process :nasty_columns_1
assert_response :success
assert_deprecated_assertion { assert_invalid_record 'company' }
assert_deprecated_assertion { assert_invalid_column_on_record 'company', 'rating' }
assert_deprecated_assertion { assert_valid_column_on_record 'company', 'name' }
assert_deprecated_assertion { assert_valid_column_on_record 'company', %w(name id) }
end
# test for 2 bad apples columns
def test_all_invalid_columns
process :nasty_columns_2
assert_response :success
assert_deprecated_assertion { assert_invalid_record 'company' }
assert_deprecated_assertion { assert_invalid_column_on_record 'company', 'rating' }
assert_deprecated_assertion { assert_invalid_column_on_record 'company', 'name' }
assert_deprecated_assertion { assert_invalid_column_on_record 'company', %w(name rating) }
end
# ensure we have no problems with an ActiveRecord
def test_valid_record
process :good_company
assert_response :success
assert_deprecated_assertion { assert_valid_record 'company' }
end
# ensure we have problems with an ActiveRecord
def test_invalid_record
process :bad_company
assert_response :success
assert_deprecated_assertion { assert_invalid_record 'company' }
end
protected
def assert_deprecated_assertion(message = nil, &block)
assert_deprecated(/assert_.*from test_/, &block)
end
end