177 lines
5.3 KiB
Ruby
177 lines
5.3 KiB
Ruby
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
|
|
|
|
factory :single_user_session do
|
|
after(:create) do |user, evaluator|
|
|
music_session = FactoryGirl.create(:active_music_session, :creator => user)
|
|
connection = FactoryGirl.create(:connection, :user => user, :music_session => music_session)
|
|
end
|
|
end
|
|
end
|
|
factory :artifact_update, :class => JamRuby::ArtifactUpdate do
|
|
sequence(:version) { |n| "0.1.#{n}" }
|
|
uri { "http://somewhere/jkclient.msi" }
|
|
product { "JamClient/Win32" }
|
|
environment { "public" }
|
|
sha1 { "blurp" }
|
|
end
|
|
|
|
factory :musician_instrument, :class=> JamRuby::MusicianInstrument do
|
|
instrument { Instrument.find('electric guitar') }
|
|
proficiency_level 1
|
|
priority 0
|
|
end
|
|
|
|
factory :instrument, :class => JamRuby::Instrument do
|
|
description { |n| "Instrument #{n}" }
|
|
end
|
|
|
|
factory :genre, :class => JamRuby::Genre do
|
|
description { |n| "Genre #{n}" }
|
|
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
|
|
|
|
music_session_id { history.id }
|
|
user_id { user.id }
|
|
sequence(:client_id) { |n| "Connection #{n}" }
|
|
end
|
|
|
|
factory :recorded_track, :class => JamRuby::RecordedTrack do
|
|
instrument JamRuby::Instrument.first
|
|
sound 'stereo'
|
|
sequence(:client_id) { |n| "client_id-#{n}"}
|
|
sequence(:track_id) { |n| "track_id-#{n}"}
|
|
sequence(:client_track_id) { |n| "client_track_id-#{n}"}
|
|
md5 'abc'
|
|
length 1
|
|
fully_uploaded true
|
|
association :user, factory: :user
|
|
association :recording, factory: :recording
|
|
end
|
|
|
|
factory :recording, :class => JamRuby::Recording do
|
|
|
|
association :owner, factory: :user
|
|
association :music_session, factory: :active_music_session
|
|
|
|
factory :recording_with_track do
|
|
before(:create) { |recording|
|
|
recording.recorded_tracks << FactoryGirl.create(:recorded_track, recording: recording, user: recording.owner)
|
|
}
|
|
end
|
|
end
|
|
|
|
factory :claimed_recording, :class => JamRuby::ClaimedRecording do
|
|
sequence(:name) { |n| "name-#{n}" }
|
|
sequence(:description) { |n| "description-#{n}" }
|
|
is_public true
|
|
association :genre, factory: :genre
|
|
association :user, factory: :user
|
|
|
|
before(:create) { |claimed_recording|
|
|
claimed_recording.recording = FactoryGirl.create(:recording_with_track, owner: claimed_recording.user)
|
|
}
|
|
|
|
end
|
|
|
|
factory :mix, :class => JamRuby::Mix do
|
|
started_at Time.now
|
|
completed_at Time.now
|
|
ogg_md5 'abc'
|
|
ogg_length 1
|
|
sequence(:ogg_url) { |n| "recordings/ogg/#{n}" }
|
|
mp3_md5 'abc'
|
|
mp3_length 1
|
|
sequence(:mp3_url) { |n| "recordings/mp3/#{n}" }
|
|
completed true
|
|
|
|
before(:create) {|mix|
|
|
user = FactoryGirl.create(:user)
|
|
mix.recording = FactoryGirl.create(:recording_with_track, owner: user)
|
|
mix.recording.claimed_recordings << FactoryGirl.create(:claimed_recording, user: user, recording: mix.recording)
|
|
}
|
|
end
|
|
|
|
factory :diagnostic, :class => JamRuby::Diagnostic do
|
|
type JamRuby::Diagnostic::NO_HEARTBEAT_ACK
|
|
creator JamRuby::Diagnostic::CLIENT
|
|
data Faker::Lorem.sentence
|
|
association :user, factory: :user
|
|
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)
|
|
}
|
|
|
|
factory :music_session_with_mount do
|
|
association :mount, :factory => :icecast_mount
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|