Sha256: e845d2ce3092cd661b6550c7f2e9c7d8071862e4db70bdcdcf099ce3b54bbda3

Contents?: true

Size: 1.23 KB

Versions: 8

Compression:

Stored size: 1.23 KB

Contents

require 'helper'

class HelpersTest < Test::Unit::TestCase

  class ItemStates < StateManager::Base
    state :default do
      event :do_inner, :transitions_to => 'root.outer1.inner'
    end
    state :root do
      state :outer1 do
        event :next, :transitions_to => 'outer2.inner'
        state :inner do
          event :next, :transitions_to => 'inner2'
        end
        state :inner2
      end
      state :outer2 do
        state :inner do
        end
      end
    end
  end

  class Item
    attr_accessor :state
    extend StateManager::Resource
    state_manager
  end

  def setup
    @resource = Item.new
  end

  def test_helpers
    assert @resource.default?
    assert !@resource.root?
    assert !@resource.root_outer1?
    assert !@resource.root_outer1_inner?
    assert @resource.can_do_inner?
    assert !@resource.can_next?

    @resource.do_inner!

    assert @resource.root?
    assert @resource.root_outer1?
    assert @resource.root_outer1_inner?
    assert !@resource.root_outer2_inner?
    assert @resource.can_next?
    
    @resource.next!

    assert @resource.root_outer1_inner2?
    assert @resource.can_next?

    @resource.next!

    assert @resource.root_outer2_inner?
    assert !@resource.can_next?
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
state_manager-0.2.10 test/helpers_test.rb
state_manager-0.2.9 test/helpers_test.rb
state_manager-0.2.8 test/helpers_test.rb
state_manager-0.2.7 test/helpers_test.rb
state_manager-0.2.6 test/helpers_test.rb
state_manager-0.2.5 test/helpers_test.rb
state_manager-0.2.4 test/helpers_test.rb
state_manager-0.2.3 test/helpers_test.rb