Sha256: 1b68bcaf1a25d19fb1897e22326a072b6512aafeb69d73ebe7be36f686da0829

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

require 'spec_helper'
require 'integration/automatic_validation/spec_helper'

describe 'uniqueness' do
  describe 'single column' do
    before :all do
      @klass = Class.new do
        include DataMapper::Resource

        storage_names[:default] = 'unique_events_single'

        property :id,         Integer, :key => true
        property :start_year, Integer, :unique => true
      end
      @klass.auto_migrate!

      @existing = @klass.create(:id => 1, :start_year => 2008)
      @new = @klass.new(:id => 2, :start_year => 2008)
    end

    it 'validates' do
      @new.should_not be_valid
    end
  end

  describe 'multiple columns' do
    before :all do
      @klass = Class.new do
        include DataMapper::Resource

        storage_names[:default] = 'unique_events_multiple'

        property :id, Integer, :key => true
        property :start_year, Integer, :unique => :years
        property :stop_year,  Integer, :unique => :years
      end
      @klass.auto_migrate!

      @new = @klass.new(:id => 1, :start_year => 2008, :stop_year => 2009)
    end

    it 'validates uniquness' do
      lambda {
        @new.should_not be_valid
      }.should raise_error(ArgumentError)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dm-validations-1.1.0 spec/integration/automatic_validation/inferred_uniqueness_validation_spec.rb
dm-validations-1.1.0.rc3 spec/integration/automatic_validation/inferred_uniqueness_validation_spec.rb
dm-validations-1.1.0.rc2 spec/integration/automatic_validation/inferred_uniqueness_validation_spec.rb
dm-validations-1.1.0.rc1 spec/integration/automatic_validation/inferred_uniqueness_validation_spec.rb