mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
50 lines
1.1 KiB
Ruby
50 lines
1.1 KiB
Ruby
|
require "cases/helper"
|
||
|
|
||
|
class TestLint < Test::Unit::TestCase
|
||
|
class CompliantObject
|
||
|
def to_model
|
||
|
self
|
||
|
end
|
||
|
|
||
|
def valid?() true end
|
||
|
def new_record?() true end
|
||
|
def destroyed?() true end
|
||
|
|
||
|
def errors
|
||
|
obj = Object.new
|
||
|
def obj.[](key) [] end
|
||
|
def obj.full_messages() [] end
|
||
|
obj
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def assert_output(object, failures, errors, *test_names)
|
||
|
ActiveModel::Lint.test(object, 3, output = StringIO.new)
|
||
|
regex = %r{#{failures} failures, #{errors} errors}
|
||
|
assert_match regex, output.string
|
||
|
|
||
|
test_names.each do |test_name|
|
||
|
assert_match test_name, output.string
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def test_valid
|
||
|
assert_output(CompliantObject.new, 0, 0, /test_valid/)
|
||
|
end
|
||
|
|
||
|
def test_new_record
|
||
|
assert_output(CompliantObject.new, 0, 0, /test_new_record?/)
|
||
|
end
|
||
|
|
||
|
def test_destroyed
|
||
|
assert_output(CompliantObject.new, 0, 0, /test_destroyed/)
|
||
|
end
|
||
|
|
||
|
def test_errors_aref
|
||
|
assert_output(CompliantObject.new, 0, 0, /test_errors_aref/)
|
||
|
end
|
||
|
|
||
|
def test_errors_full_messages
|
||
|
assert_output(CompliantObject.new, 0, 0, /test_errors_aref/)
|
||
|
end
|
||
|
end
|