Sha256: b7ff17196615ee56bf101125cfa7a2048612982fafd1d78faaa8e0791230bbf8

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

require 'minitest/autorun'
require 'ostruct'

require 'roar/representer'
require 'roar/representer/feature/http_verbs'
require 'roar/representer/json/hal'

module AttributesConstructor  # TODO: remove me.
  def initialize(attrs={})
    attrs.each do |k,v|
      instance_variable_set("@#{k}", v)
    end
  end
end

# FIXME: provide a real #== for OpenStruct.
class Song < OpenStruct
  def ==(other)
    name == other.name and track == other.track
  end
end

class Album < OpenStruct
end

require "test_xml/mini_test"
require "roar/representer/xml"

require "integration/runner"

MiniTest::Spec.class_eval do
  def link(options)
    Roar::Representer::Feature::Hypermedia::Hyperlink.new(options)
  end

  def self.representer_for(modules=[Roar::Representer::JSON, Roar::Representer::Feature::Hypermedia], &block)
    let (:rpr) do
      Module.new do
        include *modules.reverse

        module_exec(&block)
      end
    end
  end

  def self.representer!(*args)
    representer_for(*args)
  end

  def self.verbs(&block)
    %w(get post put delete).each(&block)
  end
end

Roar::Representer::Feature::Hypermedia::Hyperlink.class_eval do
  def ==(other)
    stringify_hash(table) == stringify_hash(other.table)
  end

  def stringify_hash(hash)
    hash.collect do |k,v|
      [k.to_s, v.to_s]
    end.sort
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roar-0.12.3 test/test_helper.rb