require 'faker' 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 city "Apex" state "NC" country "US" musician true terms_of_service true #u.association :musician_instrument, factory: :musician_instrument, user: u before(:create) do |user| user.musician_instruments << FactoryGirl.build(:musician_instrument, user: user) end factory :admin do admin true end end factory :music_session, :class => JamRuby::MusicSession do sequence(:description) { |n| "Music Session #{n}" } fan_chat true fan_access true approval_required false musician_access true legal_terms true genres [JamRuby::Genre.first] association :creator, :factory => :user end factory :music_session_history, :class => JamRuby::MusicSessionHistory do ignore do music_session nil end music_session_id { music_session.id } description { music_session.description } user_id { music_session.user_id } band_id { music_session.band_id } end factory :music_session_user_history, :class => JamRuby::MusicSessionUserHistory do ignore do history nil user nil end music_session_id { history.music_session_id } user_id { user.id } sequence(:client_id) { |n| "Connection #{n}" } end factory :connection, :class => JamRuby::Connection do sequence(:client_id) { |n| "Client#{n}" } as_musician true end factory :invitation, :class => JamRuby::Invitation do end factory :friendship, :class => JamRuby::Friendship do end factory :band_musician, :class => JamRuby::BandMusician do end factory :band, :class => JamRuby::Band do sequence(:name) { |n| "Band" } biography "My Biography" city "Apex" state "NC" country "US" end factory :genre, :class => JamRuby::Genre do description { |n| "Genre #{n}" } end factory :join_request, :class => JamRuby::JoinRequest do text 'let me in to the session!' end factory :track, :class => JamRuby::Track do sound "mono" sequence(:client_track_id) { |n| "client_track_id#{n}"} end factory :recorded_track, :class => JamRuby::RecordedTrack do end factory :instrument, :class => JamRuby::Instrument do end factory :recording, :class => JamRuby::Recording do end factory :musician_instrument, :class => JamRuby::MusicianInstrument do instrument { Instrument.find('electric guitar') } proficiency_level 1 priority 0 end factory :invited_user, :class => JamRuby::InvitedUser do sequence(:email) { |n| "user#{n}@someservice.com" } autofriend false end factory :music_session_perf_data, :class => JamRuby::MusicSessionPerfData do association :music_session => :music_session end factory :crash_dump, :class => JamRuby::CrashDump do end factory :geocoder, :class => JamRuby::MaxMindGeo do country 'US' sequence(:region) { |n| ['NC', 'CA'][(n-1).modulo(2)] } sequence(:city) { |n| ['Apex', 'San Francisco'][(n-1).modulo(2)] } sequence(:ip_start) { |n| ['1.1.0.0', '1.1.255.255'][(n-1).modulo(2)] } sequence(:ip_end) { |n| ['1.2.0.0', '1.2.255.255'][(n-1).modulo(2)] } sequence(:lat) { |n| [35.73265, 37.7742075][(n-1).modulo(2)] } sequence(:lng) { |n| [-78.85029, -122.4155311][(n-1).modulo(2)] } end factory :promo_buzz, :class => JamRuby::PromoBuzz do text_short Faker::Lorem.characters(10) text_long Faker::Lorem.paragraphs(3).join("\n") end factory :icecast_limit, :class => JamRuby::IcecastLimit do clients 5 sources 1 queue_size 102400 client_timeout 30 header_timeout 15 source_timeout 10 burst_size 65536 end factory :icecast_admin_authentication, :class => JamRuby::IcecastAdminAuthentication do source_pass Faker::Lorem.characters(10) admin_user Faker::Lorem.characters(10) admin_pass Faker::Lorem.characters(10) relay_user Faker::Lorem.characters(10) relay_pass Faker::Lorem.characters(10) end factory :icecast_directory, :class => JamRuby::IcecastDirectory do yp_url_timeout 15 yp_url Faker::Lorem.characters(10) end factory :icecast_master_server_relay, :class => JamRuby::IcecastMasterServerRelay do master_server Faker::Lorem.characters(10) master_server_port 8000 master_update_interval 120 master_username Faker::Lorem.characters(10) master_pass Faker::Lorem.characters(10) relays_on_demand 1 end factory :icecast_path, :class => JamRuby::IcecastPath do base_dir Faker::Lorem.characters(10) log_dir Faker::Lorem.characters(10) pid_file Faker::Lorem.characters(10) web_root Faker::Lorem.characters(10) admin_root Faker::Lorem.characters(10) end factory :icecast_logging, :class => JamRuby::IcecastLogging do access_log Faker::Lorem.characters(10) error_log Faker::Lorem.characters(10) log_level 3 log_archive nil log_size 10000 end factory :icecast_security, :class => JamRuby::IcecastSecurity do chroot 0 end factory :icecast_mount, :class => JamRuby::IcecastMount do name "/" + Faker::Lorem.characters(10) source_username Faker::Lorem.characters(10) source_pass Faker::Lorem.characters(10) max_listeners 100 max_listener_duration 3600 fallback_mount Faker::Lorem.characters(10) fallback_override 1 fallback_when_full 1 is_public -1 stream_name Faker::Lorem.characters(10) stream_description Faker::Lorem.characters(10) stream_url Faker::Lorem.characters(10) genre Faker::Lorem.characters(10) hidden 0 association :server, factory: :icecast_server_with_overrides factory :icecast_mount_with_auth do association :authentication, :factory => :icecast_user_authentication factory :iceast_mount_with_template do association :mount_template, :factory => :icecast_mount_template factory :iceast_mount_with_music_session do association :music_session, :factory => :music_session end end end end factory :icecast_listen_socket, :class => JamRuby::IcecastListenSocket do port 8000 end factory :icecast_relay, :class => JamRuby::IcecastRelay do port 8000 mount Faker::Lorem.characters(10) server Faker::Lorem.characters(10) on_demand 1 end factory :icecast_user_authentication, :class => JamRuby::IcecastUserAuthentication do authentication_type 'url' unused_username Faker::Lorem.characters(10) unused_pass Faker::Lorem.characters(10) mount_add Faker::Lorem.characters(10) mount_remove Faker::Lorem.characters(10) listener_add Faker::Lorem.characters(10) listener_remove Faker::Lorem.characters(10) auth_header 'icecast-auth-user: 1' timelimit_header 'icecast-auth-timelimit:' end factory :icecast_server, :class => JamRuby::IcecastServer do sequence(:hostname) { |n| "hostname-#{n}"} sequence(:server_id) { |n| "server-#{n}"} factory :icecast_server_minimal do association :template, :factory => :icecast_template_minimal association :mount_template, :factory => :icecast_mount_template factory :icecast_server_with_overrides do association :limit, :factory => :icecast_limit association :admin_auth, :factory => :icecast_admin_authentication association :path, :factory => :icecast_path association :logging, :factory => :icecast_logging association :security, :factory => :icecast_security before(:create) do |server| server.listen_sockets << FactoryGirl.build(:icecast_listen_socket) end end end end factory :icecast_template, :class => JamRuby::IcecastTemplate do sequence(:name) { |n| "name-#{n}"} sequence(:location) { |n| "location-#{n}"} factory :icecast_template_minimal do association :limit, :factory => :icecast_limit association :admin_auth, :factory => :icecast_admin_authentication association :path, :factory => :icecast_path association :logging, :factory => :icecast_logging association :security, :factory => :icecast_security before(:create) do |template| template.listen_sockets << FactoryGirl.build(:icecast_listen_socket) end end end factory :icecast_mount_template, :class => JamRuby::IcecastMountTemplate do sequence(:name) { |n| "name-#{n}"} source_username Faker::Lorem.characters(10) source_pass Faker::Lorem.characters(10) max_listeners 100 max_listener_duration 3600 fallback_mount Faker::Lorem.characters(10) fallback_override 1 fallback_when_full 1 is_public -1 stream_name Faker::Lorem.characters(10) stream_description Faker::Lorem.characters(10) stream_url Faker::Lorem.characters(10) genre Faker::Lorem.characters(10) hidden 0 association :authentication, :factory => :icecast_user_authentication end end