Sha256: b0b80160a01066144e94e53435d6a5b8ff22e7a526a65e45da7f56e95d81ee0a

Contents?: true

Size: 972 Bytes

Versions: 3

Compression:

Stored size: 972 Bytes

Contents

require_relative 'test_helper'

class MachineWithStateDrivenValidationsTest < BaseTestCase
  def setup
    @model = new_model do
      field :seatbelt, :type => Boolean
    end

    @machine = StateMachines::Machine.new(@model)
    @machine.state :first_gear do
      validates_presence_of :seatbelt, :key => :first_gear
    end
    @machine.state :second_gear do
      validates_presence_of :seatbelt, :key => :second_gear
    end
    @machine.other_states :parked
  end

  def test_should_be_valid_if_validation_fails_outside_state_scope
    record = @model.new(:state => 'parked', :seatbelt => nil)
    assert record.valid?
  end

  def test_should_be_invalid_if_validation_fails_within_state_scope
    record = @model.new(:state => 'first_gear', :seatbelt => nil)
    assert !record.valid?
  end

  def test_should_be_valid_if_validation_succeeds_within_state_scope
    record = @model.new(:state => 'second_gear', :seatbelt => true)
    assert record.valid?
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
state_machines-mongoid-0.2.0 test/machine_with_state_driven_validations_test.rb
state_machines-mongoid-0.1.1 test/machine_with_state_driven_validations_test.rb
state_machines-mongoid-0.1.0 test/machine_with_state_driven_validations_test.rb