rabl-rails/test/non_restful_response_test.rb
2012-04-20 16:28:34 +02:00

35 lines
1.0 KiB
Ruby

require 'test_helper'
class NonRestfulResponseTest < ActiveSupport::TestCase
setup do
RablRails::Library.reset_instance
@user = User.new(1, 'foo', 'male')
@user.stub_chain(:posts, :count).and_return(10)
@user.stub(:respond_to?).with(:each).and_return(false)
@context = Context.new
@context.stub(:instance_variable_get).with(:@user).and_return(@user)
@context.stub(:instance_variable_get).with(:@virtual_path).and_return('user/show')
@context.stub(:instance_variable_get).with(:@_assigns).and_return({'user' => @user})
@context.stub(:lookup_context)
end
test "compile and render non restful resource" do
source = %{
object false
node(:post_count) { @user.posts.count }
child(:@user => :user) do
attributes :id, :name
end
}
assert_equal(ActiveSupport::JSON.encode({
:post_count => 10,
:user => {
:id => 1,
:name => 'foo'
}
}), RablRails::Library.instance.get_rendered_template(source, @context))
end
end