Sha256: 2d7753572ab0766633a2b8563158d5e5ec90af02a5b497353d8caa414a55a55f

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))

describe DataMapper do
  describe '.finalize' do
    subject { DataMapper.finalize }

    it 'should not raise with valid models' do
      class ::ValidObject
        include DataMapper::Resource
        property :id, Integer, :key => true
      end
      method(:subject).should_not raise_error
      DataMapper::Model.descendants.delete(ValidObject)
      Object.send(:remove_const, :ValidObject)
    end

    it 'should raise on an anonymous model' do
      model = Class.new do
        include DataMapper::Resource
        property :id, Integer, :key => true
      end
      method(:subject).should raise_error(DataMapper::IncompleteModelError, "#{model.inspect} must have a name")
      DataMapper::Model.descendants.delete(model)
    end

    it 'should raise on an empty model' do
      class ::EmptyObject
        include DataMapper::Resource
      end
      method(:subject).should raise_error(DataMapper::IncompleteModelError, 'EmptyObject must have at least one property or many to one relationship to be valid')
      DataMapper::Model.descendants.delete(EmptyObject)
      Object.send(:remove_const, :EmptyObject)
    end

    it 'should raise on a keyless model' do
      class ::KeylessObject
        include DataMapper::Resource
        property :name, String
      end
      method(:subject).should raise_error(DataMapper::IncompleteModelError, 'KeylessObject must have a key to be valid')
      DataMapper::Model.descendants.delete(KeylessObject)
      Object.send(:remove_const, :KeylessObject)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dm-core-1.0.0 spec/public/finalize_spec.rb