FactoryGirl.define do factory :ticket do venue { Faker::Lorem.words(2).join(" ") + " Theatre"} show organization ticket_type { FactoryGirl.create(:ticket_type, :price => 1000) } after(:build) do |ticket| ticket.set_uuid ticket.section_id = ticket.ticket_type.section_id if ticket.ticket_type end end factory :free_ticket, :parent => :ticket do venue { Faker::Lorem.words(2).join(" ") + " Theatre"} show organization cart_price 0 sold_price 0 ticket_type { FactoryGirl.create(:ticket_type, :price => 0) } end factory :ticket_with_no_type, :class => Ticket do venue { Faker::Lorem.words(2).join(" ") + " Theatre"} show organization end factory :unlocked_ticket, :parent => :ticket do ticket_type { nil } 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 factory :ticket_with_price, :class => Ticket do state :sold ticket_type {FactoryGirl.create(:ticket_type)} cart_price 1 sold_price 1 end factory :off_sale_ticket, :parent => :ticket do state :off_sale ticket_type {FactoryGirl.create(:ticket_type)} end factory :on_sale_ticket, :parent => :ticket do state :on_sale ticket_type {FactoryGirl.create(:ticket_type)} end end