VRFS-2024 - Migration, model and spec for video source.
This commit is contained in:
parent
2d6f2e606d
commit
5135fe7faf
|
|
@ -214,4 +214,5 @@ fix_find_session_sorting_2216a.sql
|
|||
fix_find_session_sorting_2216b.sql
|
||||
fix_find_session_sorting_2216c.sql
|
||||
entabulate_current_network_scores.sql
|
||||
discard_scores_changed.sql
|
||||
discard_scores_changed.sql
|
||||
video_sources.sql
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
CREATE TABLE video_sources (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
connection_id VARCHAR(64) NOT NULL,
|
||||
client_video_source_id VARCHAR(64) NOT NULL,
|
||||
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
|
|
@ -173,6 +173,7 @@ require "jam_ruby/models/chat_message"
|
|||
require "jam_ruby/models/generic_state"
|
||||
require "jam_ruby/models/score_history"
|
||||
require "jam_ruby/models/jam_company"
|
||||
require "jam_ruby/models/video_source"
|
||||
|
||||
include Jampb
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ module JamRuby
|
|||
belongs_to :music_session, :class_name => "JamRuby::ActiveMusicSession", foreign_key: :music_session_id
|
||||
has_one :latency_tester, class_name: 'JamRuby::LatencyTester', foreign_key: :client_id, primary_key: :client_id
|
||||
has_many :tracks, :class_name => "JamRuby::Track", :inverse_of => :connection, :foreign_key => 'connection_id', :dependent => :delete_all
|
||||
has_many :video_sources, :class_name => "JamRuby::VideoSource", :inverse_of => :connection, :foreign_key => 'connection_id', :dependent => :delete_all
|
||||
|
||||
validates :as_musician, :inclusion => {:in => [true, false]}
|
||||
validates :client_type, :inclusion => {:in => [TYPE_CLIENT, TYPE_BROWSER, TYPE_LATENCY_TESTER]}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
# Video analog to JamRuby::Track
|
||||
module JamRuby
|
||||
class VideoSource < ActiveRecord::Base
|
||||
self.table_name = "video_sources"
|
||||
self.primary_key = 'id'
|
||||
default_scope order('created_at ASC')
|
||||
belongs_to :connection, :class_name => "JamRuby::Connection", :inverse_of => :video_sources, :foreign_key => 'connection_id'
|
||||
validates :connection, presence: true
|
||||
end
|
||||
end
|
||||
|
|
@ -231,6 +231,10 @@ FactoryGirl.define do
|
|||
sequence(:client_track_id) { |n| "client_track_id#{n}"}
|
||||
end
|
||||
|
||||
factory :video_source, :class => JamRuby::VideoSource do
|
||||
client_video_source_id "test_source_id"
|
||||
end
|
||||
|
||||
factory :recorded_track, :class => JamRuby::RecordedTrack do
|
||||
instrument JamRuby::Instrument.first
|
||||
sound 'stereo'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe VideoSource do
|
||||
|
||||
let (:user) {FactoryGirl.create(:user) }
|
||||
let (:music_session) { FactoryGirl.create(:active_music_session, :creator => user)}
|
||||
let (:connection) { FactoryGirl.create(:connection, :user => user, :music_session => music_session) }
|
||||
let (:msuh) {FactoryGirl.create(:music_session_user_history, :history => music_session.music_session, :user => user, :client_id => connection.client_id) }
|
||||
|
||||
before(:each) do
|
||||
msuh.touch
|
||||
end
|
||||
|
||||
describe "simple create" do
|
||||
it "create a video source" do
|
||||
track = FactoryGirl.create(:video_source, :connection => connection)
|
||||
track.should_not be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue