VRFS-2024 - Migration, model and spec for video source.

This commit is contained in:
Steven Miers 2014-10-03 13:36:51 -05:00
parent 2d6f2e606d
commit 5135fe7faf
7 changed files with 47 additions and 1 deletions

View File

@ -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

9
db/up/video_sources.sql Normal file
View File

@ -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
);

View File

@ -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

View File

@ -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]}

View File

@ -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

View File

@ -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'

View File

@ -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