Sha256: cf04adbd2674f929291b83623b49589ae0664feebf0903e4867cd879c224d9ba

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

class DCI::TestController
  include DCI::Controller::DSL
  attr_accessor :resource
end

module TestExtension1
  def extended_with_TestExtension1; true; end
end
module TestExtension2
  def extended_with_TestExtension2; true; end
end
module TestExtension3
  def extended_with_TestExtension3; true; end
end

describe "DCI::Controller::DSL" do
  context "mixed into a controller class" do
    describe "#extend_resource" do
      let(:controller) { DCI::TestController.new }
      let(:resource) { Object.new }

      it "extends the resource method with the provided module extensions" do
        controller.resource = resource
        (class << controller; self; end).instance_eval do
          extend_resource :resource, TestExtension1, TestExtension2, TestExtension3
        end

        resource.should_not respond_to(:extended_with_TestExtension1)
        controller.resource.should respond_to(:extended_with_TestExtension1)
        controller.resource.should respond_to(:extended_with_TestExtension2)
        controller.resource.should respond_to(:extended_with_TestExtension3)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dci-rails-0.1.2 spec/controller/dsl_spec.rb
dci-rails-0.1.1 spec/controller/dsl_spec.rb
dci-rails-0.1.0 spec/controller/dsl_spec.rb