FactoryGirl.define do factory :ticket do venue { Faker::Lorem.words(2).join(" ") + " Theatre"} show organization section after(:build) do |ticket| ticket.ticket_type = FactoryGirl.create(:ticket_type, :price => 1000, :section => ticket.section) ticket.set_uuid end end factory :free_ticket, :parent => :ticket do venue { Faker::Lorem.words(2).join(" ") + " Theatre"} show organization cart_price 0 sold_price 0 after(:build) do |ticket| ticket.ticket_type = FactoryGirl.create(:ticket_type, :price => 0, :section => ticket.section) end end factory :ticket_with_no_type, :class => Ticket do venue { Faker::Lorem.words(2).join(" ") + " Theatre"} show organization section end factory :unlocked_ticket, :parent => :ticket do after(:build) do |ticket| ticket.ticket_type = nil end end factory :comped_ticket, :parent => :ticket do after(:create) do |ticket| ticket.comp_to(FactoryGirl.create(:individual)) end end factory :sold_ticket, :parent => :ticket do state :sold sold_price 1000 after(:create) do |ticket| ticket.sell_to(FactoryGirl.create(:individual)) end end factory :fully_discounted_ticket, :parent => :ticket do state :sold ticket_type {FactoryGirl.create(:ticket_type)} cart_price 0 sold_price 0 end end