Sha256: fe2afe5eb9e74b7e2156b667acf5cdf886bc915a3520b0997d8c777270ecc765

Contents?: true

Size: 1.29 KB

Versions: 2

Compression:

Stored size: 1.29 KB

Contents

require 'spec_helper'
require 'orm_adapter/example_app_shared'

if !defined?(DataMapper)
  puts "** require 'dm-core' to run the specs in #{__FILE__}"
else  
  
  DataMapper.setup(:default, 'sqlite::memory:')
  
  module DmOrmSpec
    class User
      include DataMapper::Resource
      property :id,   Serial
      property :name, String
      has n, :notes, :child_key => [:owner_id]
    end

    class Note
      include DataMapper::Resource
      property :id,   Serial
      property :body, String
      belongs_to :owner, 'User'
    end
    
    require  'dm-migrations'
    DataMapper.finalize
    DataMapper.auto_migrate!
  
    # here be the specs!
    describe DataMapper::Resource::OrmAdapter do
      before do
        User.destroy
        Note.destroy
      end
      
      describe "the OrmAdapter class" do
        subject { DataMapper::Resource::OrmAdapter }

        specify "#model_classes should return all of the non abstract model classes (that are not in except_classes)" do
          subject.model_classes.should == [User, Note]
        end
      end

      it_should_behave_like "example app with orm_adapter" do
        let(:user_class) { User }
        let(:note_class) { Note }
        
        def reload_model(model)
          model.class.get(model.id)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
orm_adapter-0.0.3 spec/orm_adapter/adapters/data_mapper_spec.rb
orm_adapter-0.0.2 spec/orm_adapter/adapters/data_mapper_spec.rb