Sha256: b9dcd6c4d2c7a6048ec1e5073848eeb80590ee2cd7b275c634f1a724db5ec1d2

Contents?: true

Size: 1.18 KB

Versions: 17

Compression:

Stored size: 1.18 KB

Contents

require "#{File.dirname(__FILE__)}/abstract_unit"
require "fixtures/person"

class FormatTest < Test::Unit::TestCase
  def setup
    @matz  = { :id => 1, :name => 'Matz' }
    @david = { :id => 2, :name => 'David' }
    
    @programmers = [ @matz, @david ]
  end
  
  def test_formats_on_single_element
    for format in [ :json, :xml ]
      using_format(Person, format) do
        ActiveResource::HttpMock.respond_to.get "/people/1.#{format}", {}, ActiveResource::Formats[format].encode(@david)
        assert_equal @david[:name], Person.find(1).name
      end
    end
  end

  def test_formats_on_collection
    for format in [ :json, :xml ]
      using_format(Person, format) do
        ActiveResource::HttpMock.respond_to.get "/people.#{format}", {}, ActiveResource::Formats[format].encode(@programmers)
        remote_programmers = Person.find(:all)
        assert_equal 2, remote_programmers.size
        assert remote_programmers.select { |p| p.name == 'David' }
      end
    end
  end

  
  private
    def using_format(klass, mime_type_reference)
      previous_format = klass.format
      klass.format = mime_type_reference

      yield
    ensure
      klass.format = previous_format
    end
end

Version data entries

17 entries across 17 versions & 4 rubygems

Version Path
activeresource-2.0.1 test/format_test.rb
activeresource-2.0.2 test/format_test.rb
radiant-0.6.5.1 vendor/rails/activeresource/test/format_test.rb
radiant-0.6.5 vendor/rails/activeresource/test/format_test.rb
radiant-0.6.7 vendor/rails/activeresource/test/format_test.rb
radiant-0.6.6 vendor/rails/activeresource/test/format_test.rb
radiant-0.6.9 vendor/rails/activeresource/test/format_test.rb
radiant-0.6.8 vendor/rails/activeresource/test/format_test.rb
spree-0.0.9 vendor/rails/activeresource/test/format_test.rb
spree-0.2.0 vendor/rails/activeresource/test/format_test.rb
swivel-0.0.149 vendor/activeresource-2.0.2-/test/format_test.rb
swivel-0.0.150 vendor/activeresource-2.0.2-/test/format_test.rb
swivel-0.0.156 vendor/activeresource-2.0.2-/test/format_test.rb
swivel-0.0.157 vendor/activeresource-2.0.2-/test/format_test.rb
swivel-0.0.160 vendor/activeresource-2.0.2-/test/format_test.rb
swivel-0.0.152 vendor/activeresource-2.0.2-/test/format_test.rb
swivel-0.0.155 vendor/activeresource-2.0.2-/test/format_test.rb