提交 1bdb14bd 编写于 作者: R Rick Olson

Increase ActiveResource::Base test coverage. Closes #7173, #7174 [Rich Collins]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6020 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 f3f691ea
*SVN*
* Increase ActiveResource::Base test coverage. Closes #7173, #7174 [Rich Collins]
* Interpret 422 Unprocessable Entity as ResourceInvalid. #7097 [dkubb]
* Mega documentation patches. #7025, #7069 [rwdaigle]
......
......@@ -6,3 +6,31 @@
require 'active_support/breakpoint'
ActiveResource::Base.logger = Logger.new("#{File.dirname(__FILE__)}/debug.log")
class SetterTrap < Builder::BlankSlate
class << self
def rollback_sets(obj)
returning yield(setter_trap = new(obj)) do
setter_trap.rollback_sets
end
end
end
def initialize(obj)
@cache = {}
@obj = obj
end
def respond_to?(method)
@obj.respond_to?(method)
end
def method_missing(method, *args, &proc)
@cache[method] = @obj.send(method.to_s[0 ... -1]) if method.to_s[-1 .. -1] == "=" unless @cache[method]
@obj.send method, *args, &proc
end
def rollback_sets
@cache.each { |k, v| @obj.send k, v }
end
end
\ No newline at end of file
......@@ -137,6 +137,27 @@ def test_prefix
assert_equal "/", Person.prefix
assert_equal Set.new, Person.send(:prefix_parameters)
end
def test_set_prefix
SetterTrap.rollback_sets(Person) do |person_class|
person_class.prefix = "the_prefix"
assert_equal "the_prefix", person_class.prefix
end
end
def test_set_prefix_with_inline_keys
SetterTrap.rollback_sets(Person) do |person_class|
person_class.prefix = "the_prefix:the_param"
assert_equal "the_prefixthe_param_value", person_class.prefix(:the_param => "the_param_value")
end
end
def test_set_prefix_with_default_value
SetterTrap.rollback_sets(Person) do |person_class|
person_class.set_prefix
assert_equal "/", person_class.prefix
end
end
def test_custom_prefix
assert_equal '/people//', StreetAddress.prefix
......@@ -261,4 +282,9 @@ def test_exists
assert !StreetAddress.new({:id => 1}, {:person_id => 2}).exists?
assert !StreetAddress.new({:id => 2}, {:person_id => 1}).exists?
end
def test_to_xml
matz = Person.find(1)
assert_equal "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<person>\n <name>Matz</name>\n <id type=\"integer\">1</id>\n</person>\n", matz.to_xml
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册