Sha256: 824c610f5d645b6b4181ff2b821d8a4d2144d8c75017f24de5cc2f562135a771

Contents?: true

Size: 1.25 KB

Versions: 8

Compression:

Stored size: 1.25 KB

Contents

require 'rest_in_peace/definition_proxy'

describe RESTinPeace::DefinitionProxy do
  let(:resource_definitions) { object_double(RESTinPeace::DefinitionProxy::ResourceMethodDefinitions) }
  let(:collection_definitions) { object_double(RESTinPeace::DefinitionProxy::CollectionMethodDefinitions) }
  let(:target) { }
  let(:proxy) { RESTinPeace::DefinitionProxy.new(target) }
  let(:test_proc) { ->() {} }

  subject { proxy }

  before do
    allow(RESTinPeace::DefinitionProxy::ResourceMethodDefinitions).
      to receive(:new).with(target).and_return(resource_definitions)
    allow(RESTinPeace::DefinitionProxy::CollectionMethodDefinitions).
      to receive(:new).with(target).and_return(collection_definitions)
  end

  describe '#resource' do
    it 'forwards the given block to a resource method definition' do
      expect(resource_definitions).to receive(:instance_eval) do |&block|
        expect(block).to be_instance_of(Proc)
      end
      subject.resource(&test_proc)
    end
  end

  describe '#collection' do
    it 'forwards the given block to a collection method definition' do
      expect(collection_definitions).to receive(:instance_eval) do |&block|
        expect(block).to be_instance_of(Proc)
      end
      subject.collection(&test_proc)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rest-in-peace-1.4.0 spec/rest_in_peace/definition_proxy_spec.rb
rest-in-peace-1.3.1 spec/rest_in_peace/definition_proxy_spec.rb
rest-in-peace-1.3.0 spec/rest_in_peace/definition_proxy_spec.rb
rest-in-peace-1.2.1 spec/rest_in_peace/definition_proxy_spec.rb
rest-in-peace-1.2.0 spec/rest_in_peace/definition_proxy_spec.rb
rest-in-peace-1.1.1 spec/rest_in_peace/definition_proxy_spec.rb
rest-in-peace-1.1.0 spec/rest_in_peace/definition_proxy_spec.rb
rest-in-peace-1.0.0 spec/rest_in_peace/definition_proxy_spec.rb