FactoryGirl.define do factory :user, :class => JamRuby::User do sequence(:email) { |n| "person_#{n}@example.com"} sequence(:first_name) { |n| "Person" } sequence(:last_name) { |n| "#{n}" } password "foobar" password_confirmation "foobar" email_confirmed true musician true city "Apex" state "NC" country "US" terms_of_service true factory :admin do admin true end before(:create) do |user| user.musician_instruments << FactoryGirl.build(:musician_instrument, user: user) end end factory :active_music_session_no_user_history, :class => JamRuby::ActiveMusicSession do association :creator, factory: :user ignore do name "My Music Session" description "Come Music Session" fan_chat true fan_access true approval_required false musician_access true legal_terms true genre JamRuby::Genre.first band nil end before(:create) do |session, evaluator| music_session = FactoryGirl.create(:music_session, name: evaluator.name, description: evaluator.description, fan_chat: evaluator.fan_chat, fan_access: evaluator.fan_access, approval_required: evaluator.approval_required, musician_access: evaluator.musician_access, genre: evaluator.genre, creator: evaluator.creator, band: evaluator.band) session.id = music_session.id end factory :active_music_session do after(:create) { |session| FactoryGirl.create(:music_session_user_history, :history => session.music_session, :user => session.creator) } end end factory :music_session, :class => JamRuby::MusicSession do sequence(:name) { |n| "Music Session #{n}" } sequence(:description) { |n| "Music Session Description #{n}" } fan_chat true fan_access true approval_required false musician_access true legal_terms true language 'english' legal_policy 'standard' genre JamRuby::Genre.first association :creator, :factory => :user end factory :music_session_user_history, :class => JamRuby::MusicSessionUserHistory do ignore do history nil user nil end instruments 'guitar' music_session_id { history.id } user_id { user.id } sequence(:client_id) { |n| "Connection #{n}" } end factory :connection, :class => JamRuby::Connection do addr 0 locidispid 0 ip_address '1.1.1.1' as_musician true client_type 'client' sequence(:channel_id) { |n| "Channel#{n}"} end factory :instrument, :class => JamRuby::Instrument do description { |n| "Instrument #{n}" } end factory :musician_instrument, :class=> JamRuby::MusicianInstrument do instrument { Instrument.find('electric guitar') } proficiency_level 1 priority 0 end factory :latency_tester, :class => JamRuby::LatencyTester do ignore do connection nil make_connection true end sequence(:client_id) { |n| "LatencyTesterClientId-#{n}" } after(:create) do |latency_tester, evaluator| latency_tester.connection = evaluator.connection if evaluator.connection latency_tester.connection = FactoryGirl.create(:connection, client_type: Connection::TYPE_LATENCY_TESTER, client_id: latency_tester.client_id) if evaluator.make_connection latency_tester.save end end end