# This file is copied to ~/spec when you run 'ruby script/generate rspec' # from the project root directory. ENV["RAILS_ENV"] = "test" require File.expand_path(File.dirname(__FILE__) + "/../config/environment") require 'spec' require 'spec/rails' # Custom Matchers from http://code.google.com/p/rspec-on-rails-matchers/ require RAILS_ROOT + '/spec/matchers/associations' require RAILS_ROOT + '/spec/matchers/validations' require RAILS_ROOT + '/spec/matchers/views' Spec::Runner.configure do |config| # If you're not using ActiveRecord you should remove these # lines, delete config/database.yml and disable :active_record # in your config/boot.rb config.use_transactional_fixtures = true config.use_instantiated_fixtures = false config.fixture_path = RAILS_ROOT + '/spec/fixtures/' # == Fixtures # # You can declare fixtures for each example_group like this: # describe "...." do # fixtures :table_a, :table_b # # Alternatively, if you prefer to declare them only once, you can # do so right here. Just uncomment the next line and replace the fixture # names with your fixtures. # # config.global_fixtures = :table_a, :table_b # # If you declare global fixtures, be aware that they will be declared # for all of your examples, even those that don't use them. # # == Mock Framework # # RSpec uses it's own mocking framework by default. If you prefer to # use mocha, flexmock or RR, uncomment the appropriate line: # # config.mock_with :mocha # config.mock_with :flexmock # config.mock_with :rr end module UsersXmlMock require 'active_resource/http_mock' def setup_users_xml_mock users_xml = File.read File.join(RAILS_ROOT, "spec", "fixtures", "remote", "users.xml") ActiveResource::HttpMock.respond_to do |mock| mock.get "/users.xml", {}, users_xml end end end class Hash ## # Filter keys out of a Hash. # # { :a => 1, :b => 2, :c => 3 }.except(:a) # => { :b => 2, :c => 3 } def except(*keys) self.reject { |k,v| keys.include?(k || k.to_sym) } end ## # Override some keys. # # { :a => 1, :b => 2, :c => 3 }.with(:a => 4) # => { :a => 4, :b => 2, :c => 3 } def with(overrides = {}) self.merge overrides end ## # Returns a Hash with only the pairs identified by +keys+. # # { :a => 1, :b => 2, :c => 3 }.only(:a) # => { :a => 1 } def only(*keys) self.reject { |k,v| !keys.include?(k || k.to_sym) } end end