Sha256: d8eceec612440d7dcc294700c55be030da080982e012b8d88f67fac96dbe5b7b

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

require 'spec_helper'

describe Zertico::Accessor do
  let(:user) { User.new }
  let(:user_accessor) { UserAccessor.new(user) }

  context 'on a namespaced accessor and interface model' do
    it 'should find the interface model' do
      Person::ProfileAccessor.send(:interface_class).should == Person::Profile
    end
  end

  context 'on a namespaced accessor and non namespaced interface model' do
    it 'should find the interface model' do
      Admin::UserAccessor.send(:interface_class).should == User
    end
  end

  context 'on a non namespaced accessor and non namespaced interface model' do
    it 'should find the interface model' do
      UserAccessor.send(:interface_class).should == User
    end
  end

  describe '.find' do
    before :each do
      User.stub(:find => user)
      UserAccessor.stub(:new => user_accessor)
    end

    it 'should return an accessor' do
      UserAccessor.find(3).should == user_accessor
    end
  end

  describe '#interface' do
    before :each do
      User.stub(:find => user)
    end

    it 'should return the interface object' do
      UserAccessor.find(3).interface.should == user
    end
  end

  describe '#method_missing' do
    it 'should pass the method to the interface model if it responds to it' do
      UserAccessor.new(user).should respond_to(:name)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zertico-0.5.4 spec/zertico/accessor_spec.rb