Sha256: 386affdeab5240ea5231210232d3d2705fde65d5cd372dab8eefc5619d3216a4

Contents?: true

Size: 1.22 KB

Versions: 5

Compression:

Stored size: 1.22 KB

Contents

require File.expand_path("../spec_helper", File.dirname(__FILE__))

describe MongoMapper::Plugins::StrictKeys do

  class SimpleModel
    include MongoMapper::Document
    include MongoMapper::Plugins::StrictKeys

    key :string_key, String
  end

  describe 'Instance attributes' do
    before(:each) do
      @sm = SimpleModel.new
    end

    context 'attributes-as-methods' do
      it 'should accept attributes-as-methods for pre-defined keys' do
        lambda {
          @sm.string_key = "I work!"
        }.should_not raise_error

        @sm.string_key.should == "I work!"
      end

      it 'should reject attributes-as-methods for never-defined keys' do
        lambda {
          @sm.not_defined = 'blowed up'
        }.should raise_error(NoMethodError)
      end
    end

    context 'attributes-in-brackets' do
      it 'should accept attributes-in-brackets for pre-defined keys' do
        lambda {
          @sm[:string_key] = "I work!"
        }.should_not raise_error

        @sm[:string_key].should == "I work!"
      end

      it 'should reject attributes-in-brackets for never-defined keys' do
        lambda {
          @sm[:not_defined] = 'blowed up'
        }.should raise_error(ArgumentError)
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mongo_mapper-strict_keys-0.0.5 spec/mongo_mapper/strict_keys_spec.rb
mongo_mapper-strict_keys-0.0.4 spec/mongo_mapper/strict_keys_spec.rb
mongo_mapper-strict_keys-0.0.3 spec/mongo_mapper/strict_keys_spec.rb
mongo_mapper-strict_keys-0.0.2 spec/mongo_mapper/strict_keys_spec.rb
mongo_mapper-strict_keys-0.0.1 spec/mongo_mapper/strict_keys_spec.rb