Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'spec_helper'
- require 'aasm'
- require 'digest'
- class Order
- include AASM
- attr_reader :number
- aasm do
- state :created, initial: true, before_enter: :set_number
- state :assembled
- state :delivered
- event :assembly! do
- transitions from: :created, to: :assembled
- end
- event :deliver! do
- transitions from: :assembled, to: :delivered
- end
- end
- private
- def set_number
- @number = Digest::MD5.hexdigest(rand(1..100000).to_s)
- end
- end
- describe 'State machine' do
- let(:order) { Order.new }
- it 'works' do
- expect(order.created?).to be true
- expect(order.number.class).to eq(String)
- order.assembly!
- expect(order.assembled?).to be true
- order.deliver!
- expect(order.delivered?).to be true
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement