Sha256: ea2134ffce12c1dca18a07ab1f6ee6652ac1950904cef460ed61e3d44798d835

Contents?: true

Size: 1.62 KB

Versions: 9

Compression:

Stored size: 1.62 KB

Contents

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

describe Sequel::Schema::Generator do
  before :all do
    @generator = Sequel::Schema::Generator.new(SchemaDummyDatabase.new, :items) do
      string :title
      column :body, :text
      foreign_key :parent_id
      primary_key :id
      index :title
      index [:title, :body]
    end
    @table_name, @columns, @indexes = @generator.create_info
  end
  
  {:name => :id, :primary_key => true}.each do |field, expected|
    it "uses default primary key #{field}" do
      @columns.first[field].should == expected
    end
  end
  
  it "counts primary key as column" do
    @columns.size.should == 4
  end
  
  it "places primary key first" do
    @columns[0][:primary_key].should     be_true
    @columns[1][:primary_key].should_not be_true
    @columns[2][:primary_key].should_not be_true
  end

  it "retrieves primary key name" do
    @generator.primary_key_name.should == :id
  end

  it "keeps columns in order" do
    @columns[1][:name].should == :title
    @columns[1][:type].should == :string
    @columns[2][:name].should == :body
    @columns[2][:type].should == :text
  end
  
  it "creates foreign key column" do
    @columns[3][:name].should == :parent_id
    @columns[3][:type].should == :integer
  end
  
  it "finds columns" do
    [:title, :body, :parent_id, :id].each do |col|
      @generator.has_column?(col).should be_true
    end
    @generator.has_column?(:foo).should_not be_true
  end
  
  it "creates indexes" do
    @indexes[0][:columns].should include(:title)
    @indexes[1][:columns].should include(:title)
    @indexes[1][:columns].should include(:body)
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
sequel-0.1.9.12 spec/schema_generator_spec.rb
sequel-0.2.0.2 spec/schema_generator_spec.rb
sequel-0.2.0 spec/schema_generator_spec.rb
sequel-0.2.0.1 spec/schema_generator_spec.rb
sequel-0.2.1 spec/schema_generator_spec.rb
sequel-0.2.1.1 spec/schema_generator_spec.rb
sequel-0.3.0 spec/schema_generator_spec.rb
sequel-0.3.0.1 spec/schema_generator_spec.rb
sequel-0.3.1 spec/schema_generator_spec.rb