active_encode 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +1 -0
  4. data/Gemfile +2 -1
  5. data/README.md +69 -0
  6. data/active_encode.gemspec +5 -2
  7. data/lib/active_encode/engine_adapters.rb +1 -0
  8. data/lib/active_encode/engine_adapters/elastic_transcoder_adapter.rb +1 -1
  9. data/lib/active_encode/engine_adapters/ffmpeg_adapter.rb +12 -2
  10. data/lib/active_encode/engine_adapters/media_convert_adapter.rb +372 -0
  11. data/lib/active_encode/engine_adapters/media_convert_output.rb +104 -0
  12. data/lib/active_encode/polling.rb +1 -1
  13. data/lib/active_encode/spec/shared_specs.rb +2 -0
  14. data/{spec/shared_specs/engine_adapter_specs.rb → lib/active_encode/spec/shared_specs/engine_adapter.rb} +36 -36
  15. data/lib/active_encode/version.rb +1 -1
  16. data/lib/file_locator.rb +1 -1
  17. data/spec/fixtures/media_convert/endpoints.json +1 -0
  18. data/spec/fixtures/media_convert/job_canceled.json +412 -0
  19. data/spec/fixtures/media_convert/job_canceling.json +1 -0
  20. data/spec/fixtures/media_convert/job_completed.json +359 -0
  21. data/spec/fixtures/media_convert/job_completed_detail.json +1 -0
  22. data/spec/fixtures/media_convert/job_completed_detail_query.json +1 -0
  23. data/spec/fixtures/media_convert/job_created.json +408 -0
  24. data/spec/fixtures/media_convert/job_failed.json +406 -0
  25. data/spec/fixtures/media_convert/job_progressing.json +414 -0
  26. data/spec/integration/elastic_transcoder_adapter_spec.rb +4 -4
  27. data/spec/integration/ffmpeg_adapter_spec.rb +2 -2
  28. data/spec/integration/matterhorn_adapter_spec.rb +39 -39
  29. data/spec/integration/media_convert_adapter_spec.rb +126 -0
  30. data/spec/integration/pass_through_adapter_spec.rb +2 -2
  31. data/spec/integration/zencoder_adapter_spec.rb +198 -198
  32. data/spec/spec_helper.rb +0 -1
  33. data/spec/units/core_spec.rb +17 -17
  34. data/spec/units/file_locator_spec.rb +1 -1
  35. data/spec/units/global_id_spec.rb +8 -8
  36. data/spec/units/persistence_spec.rb +9 -9
  37. metadata +87 -23
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
  require 'spec_helper'
3
- require 'aws-sdk'
3
+ require 'aws-sdk-elastictranscoder'
4
4
  require 'json'
5
- require 'shared_specs/engine_adapter_specs'
5
+ require 'active_encode/spec/shared_specs'
6
6
 
7
7
  describe ActiveEncode::EngineAdapters::ElasticTranscoderAdapter do
8
8
  around do |example|
@@ -106,7 +106,7 @@ describe ActiveEncode::EngineAdapters::ElasticTranscoderAdapter do
106
106
  let(:create_output) { [{ id: "2", url: "s3://BucketName/elastic-transcoder-samples/output/hls/hls0400k/e8fe80f5b7063b12d567b90c0bdf6322116bba11ac458fe9d62921644159fe4a", label: "hls0400k" }] }
107
107
 
108
108
  it { is_expected.to be_running }
109
- its(:current_operations) { is_expected.to be_empty }
109
+ it { expect(subject.current_operations).to be_empty }
110
110
 
111
111
  it 'output has technical metadata' do
112
112
  subject.output.each do |output|
@@ -122,7 +122,7 @@ describe ActiveEncode::EngineAdapters::ElasticTranscoderAdapter do
122
122
  let(:running_output) { [{ id: "2", url: "s3://BucketName/elastic-transcoder-samples/output/hls/hls0400k/e8fe80f5b7063b12d567b90c0bdf6322116bba11ac458fe9d62921644159fe4a", label: "hls0400k" }] }
123
123
  let(:running_tech_metadata) { { width: 1280, height: 720, frame_rate: 25, file_size: 21_069_678, duration: 117_312 } }
124
124
 
125
- its(:current_operations) { is_expected.to be_empty }
125
+ it { expect(subject.current_operations).to be_empty }
126
126
 
127
127
  it 'input has technical metadata' do
128
128
  expect(subject.input.as_json.symbolize_keys).to include running_tech_metadata
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rails_helper'
3
- require 'shared_specs/engine_adapter_specs'
3
+ require 'active_encode/spec/shared_specs'
4
4
 
5
5
  describe ActiveEncode::EngineAdapters::FfmpegAdapter do
6
6
  around do |example|
@@ -154,7 +154,7 @@ describe ActiveEncode::EngineAdapters::FfmpegAdapter do
154
154
  end
155
155
 
156
156
  it { is_expected.to be_failed }
157
- its(:errors) { is_expected.not_to be_empty }
157
+ it { expect(subject.errors).to be_present }
158
158
  end
159
159
  end
160
160
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require 'spec_helper'
3
3
  require 'rubyhorn'
4
- require 'shared_specs/engine_adapter_specs'
4
+ require 'active_encode/spec/shared_specs'
5
5
 
6
6
  describe ActiveEncode::EngineAdapters::MatterhornAdapter do
7
7
  before(:all) do
@@ -42,53 +42,53 @@ describe ActiveEncode::EngineAdapters::MatterhornAdapter do
42
42
  describe "#create" do
43
43
  subject { created_job }
44
44
 
45
- its(:output) { is_expected.to be_empty }
46
- its(:options) { is_expected.to include(preset: 'full') }
45
+ it { expect(subject.output).to be_empty }
46
+ it { expect(subject.options).to include(preset: 'full') }
47
47
  end
48
48
 
49
49
  describe "#find" do
50
50
  context "a running encode" do
51
51
  subject { running_job }
52
52
 
53
- its(:options) { is_expected.to include(preset: 'full') }
54
- its(:output) { is_expected.to be_empty }
55
- its(:current_operations) { is_expected.to include("Hold for workflow selection") }
53
+ it { expect(subject.options).to include(preset: 'full') }
54
+ it { expect(subject.output).to be_empty }
55
+ it { expect(subject.current_operations).to include("Hold for workflow selection") }
56
56
 
57
57
  context 'input' do
58
58
  subject { running_job.input }
59
59
 
60
- its(:width) { is_expected.to be_blank }
61
- its(:height) { is_expected.to be_blank }
62
- its(:frame_rate) { is_expected.to be_blank }
63
- its(:duration) { is_expected.to be_blank }
64
- its(:file_size) { is_expected.to be_blank }
65
- its(:checksum) { is_expected.to be_blank }
66
- its(:audio_codec) { is_expected.to be_blank }
67
- its(:video_codec) { is_expected.to be_blank }
68
- its(:audio_bitrate) { is_expected.to be_blank }
69
- its(:video_bitrate) { is_expected.to be_blank }
60
+ it { expect(subject.width).to be_blank }
61
+ it { expect(subject.height).to be_blank }
62
+ it { expect(subject.frame_rate).to be_blank }
63
+ it { expect(subject.duration).to be_blank }
64
+ it { expect(subject.file_size).to be_blank }
65
+ it { expect(subject.checksum).to be_blank }
66
+ it { expect(subject.audio_codec).to be_blank }
67
+ it { expect(subject.video_codec).to be_blank }
68
+ it { expect(subject.audio_bitrate).to be_blank }
69
+ it { expect(subject.video_bitrate).to be_blank }
70
70
  end
71
71
  end
72
72
  context "a cancelled encode" do
73
73
  subject { canceled_job }
74
74
 
75
- its(:options) { is_expected.to include(preset: 'full') }
76
- its(:current_operations) { is_expected.not_to be_empty }
77
- its(:current_operations) { is_expected.to include("Tagging dublin core catalogs for publishing") }
78
- its(:updated_at) { is_expected.to be > subject.created_at }
75
+ it { expect(subject.options).to include(preset: 'full') }
76
+ it { expect(subject.current_operations).not_to be_empty }
77
+ it { expect(subject.current_operations).to include("Tagging dublin core catalogs for publishing") }
78
+ it { expect(subject.updated_at).to be > subject.created_at }
79
79
  end
80
80
 
81
81
  context "a completed encode" do
82
82
  subject { completed_job }
83
83
 
84
- its(:options) { is_expected.to include(preset: 'avalon') }
85
- its(:current_operations) { is_expected.to include("Cleaning up") }
84
+ it { expect(subject.options).to include(preset: 'avalon') }
85
+ it { expect(subject.current_operations).to include("Cleaning up") }
86
86
  end
87
87
  context "a failed encode" do
88
88
  subject { failed_job }
89
89
 
90
- its(:options) { is_expected.to include(preset: 'error') }
91
- its(:current_operations) { is_expected.to include("Cleaning up after failure") }
90
+ it { expect(subject.options).to include(preset: 'error') }
91
+ it { expect(subject.current_operations).to include("Cleaning up after failure") }
92
92
  end
93
93
  end
94
94
 
@@ -97,7 +97,7 @@ describe ActiveEncode::EngineAdapters::MatterhornAdapter do
97
97
  let(:encode) { ActiveEncode::Base.create(file) }
98
98
 
99
99
  it { is_expected.to be_a ActiveEncode::Base }
100
- its(:id) { is_expected.to eq 'cancelled-id' }
100
+ it { expect(subject.id).to eq 'cancelled-id' }
101
101
  it { is_expected.to be_cancelled }
102
102
  end
103
103
 
@@ -108,24 +108,24 @@ describe ActiveEncode::EngineAdapters::MatterhornAdapter do
108
108
 
109
109
  subject { running_job.reload }
110
110
 
111
- its(:output) { is_expected.to be_empty }
112
- its(:options) { is_expected.to include(preset: 'full') }
113
- its(:current_operations) { is_expected.to include("Hold for workflow selection") }
114
- its(:percent_complete) { is_expected.to eq 0.43478260869565216 }
111
+ it { expect(subject.output).to be_empty }
112
+ it { expect(subject.options).to include(preset: 'full') }
113
+ it { expect(subject.current_operations).to include("Hold for workflow selection") }
114
+ it { expect(subject.percent_complete).to eq 0.43478260869565216 }
115
115
 
116
116
  context 'input' do
117
117
  subject { running_job.reload.input }
118
118
 
119
- its(:width) { is_expected.to be_blank }
120
- its(:height) { is_expected.to be_blank }
121
- its(:frame_rate) { is_expected.to be_blank }
122
- its(:duration) { is_expected.to be_blank }
123
- its(:file_size) { is_expected.to be_blank }
124
- its(:checksum) { is_expected.to be_blank }
125
- its(:audio_codec) { is_expected.to be_blank }
126
- its(:video_codec) { is_expected.to be_blank }
127
- its(:audio_bitrate) { is_expected.to be_blank }
128
- its(:video_bitrate) { is_expected.to be_blank }
119
+ it { expect(subject.width).to be_blank }
120
+ it { expect(subject.height).to be_blank }
121
+ it { expect(subject.frame_rate).to be_blank }
122
+ it { expect(subject.duration).to be_blank }
123
+ it { expect(subject.file_size).to be_blank }
124
+ it { expect(subject.checksum).to be_blank }
125
+ it { expect(subject.audio_codec).to be_blank }
126
+ it { expect(subject.video_codec).to be_blank }
127
+ it { expect(subject.audio_bitrate).to be_blank }
128
+ it { expect(subject.video_bitrate).to be_blank }
129
129
  end
130
130
  end
131
131
  end
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+ require 'aws-sdk-cloudwatchevents'
4
+ require 'aws-sdk-cloudwatchlogs'
5
+ require 'aws-sdk-mediaconvert'
6
+ require 'aws-sdk-s3'
7
+ require 'json'
8
+ require 'active_encode/spec/shared_specs'
9
+ require 'active_support/json'
10
+ require 'active_support/time'
11
+
12
+ def with_json_parsing
13
+ old_settings = { parse_json_times: ActiveSupport.parse_json_times, time_zone: Time.zone }
14
+ ActiveSupport.parse_json_times = true
15
+ Time.zone = 'America/Chicago'
16
+ yield
17
+ ensure
18
+ ActiveSupport.parse_json_times = old_settings[:parse_json_times]
19
+ Time.zone = old_settings[:time_zone]
20
+ end
21
+
22
+ def reconstitute_response(fixture_path)
23
+ with_json_parsing do
24
+ HashWithIndifferentAccess.new(ActiveSupport::JSON.decode(File.read(File.join("spec/fixtures", fixture_path))))
25
+ end
26
+ end
27
+
28
+ describe ActiveEncode::EngineAdapters::MediaConvertAdapter do
29
+ around do |example|
30
+ # Setting this before each test works around a stubbing + memoization limitation
31
+ ActiveEncode::Base.engine_adapter = :media_convert
32
+ ActiveEncode::Base.engine_adapter.role = 'arn:aws:iam::123456789012:role/service-role/MediaConvert_Default_Role'
33
+ ActiveEncode::Base.engine_adapter.output_bucket = 'output-bucket'
34
+ example.run
35
+ ActiveEncode::Base.engine_adapter = :test
36
+ end
37
+
38
+ let(:job_id) { "1625859001514-vvqfwj" }
39
+ let(:mediaconvert) { Aws::MediaConvert::Client.new(stub_responses: true) }
40
+ let(:cloudwatch_events) { Aws::CloudWatchEvents::Client.new(stub_responses: true) }
41
+ let(:cloudwatch_logs) { Aws::CloudWatchLogs::Client.new(stub_responses: true) }
42
+
43
+ before do
44
+ mediaconvert.stub_responses(:describe_endpoints, reconstitute_response("media_convert/endpoints.json"))
45
+
46
+ allow(Aws::MediaConvert::Client).to receive(:new).and_return(mediaconvert)
47
+ allow(Aws::CloudWatchEvents::Client).to receive(:new).and_return(cloudwatch_events)
48
+ allow(Aws::CloudWatchLogs::Client).to receive(:new).and_return(cloudwatch_logs)
49
+ end
50
+
51
+ let(:created_job) do
52
+ mediaconvert.stub_responses(:create_job, reconstitute_response("media_convert/job_created.json"))
53
+
54
+ ActiveEncode::Base.create(
55
+ "s3://input-bucket/test_files/source_file.mp4",
56
+ output_prefix: "active-encode-test/output",
57
+ outputs: [
58
+ { preset: "System-Avc_16x9_1080p_29_97fps_8500kbps", modifier: "-1080" },
59
+ { preset: "System-Avc_16x9_720p_29_97fps_5000kbps", modifier: "-720" },
60
+ { preset: "System-Avc_16x9_540p_29_97fps_3500kbps", modifier: "-540" }
61
+ ],
62
+ use_original_url: true
63
+ )
64
+ end
65
+
66
+ let(:running_job) do
67
+ mediaconvert.stub_responses(:get_job, reconstitute_response("media_convert/job_progressing.json"))
68
+ ActiveEncode::Base.find(job_id)
69
+ end
70
+
71
+ let(:canceled_job) do
72
+ mediaconvert.stub_responses(:get_job, reconstitute_response("media_convert/job_canceled.json"))
73
+ ActiveEncode::Base.find(job_id)
74
+ end
75
+
76
+ let(:cancelling_job) do
77
+ mediaconvert.stub_responses(:cancel_job, reconstitute_response("media_convert/job_canceling.json"))
78
+ mediaconvert.stub_responses(:get_job, reconstitute_response("media_convert/job_canceled.json"))
79
+ ActiveEncode::Base.find(job_id)
80
+ end
81
+
82
+ let(:completed_job) do
83
+ mediaconvert.stub_responses(:get_job, reconstitute_response("media_convert/job_completed.json"))
84
+ cloudwatch_logs.stub_responses(:start_query, reconstitute_response("media_convert/job_completed_detail_query.json"))
85
+ cloudwatch_logs.stub_responses(:get_query_results, reconstitute_response("media_convert/job_completed_detail.json"))
86
+
87
+ ActiveEncode::Base.find(job_id)
88
+ end
89
+
90
+ let(:failed_job) do
91
+ mediaconvert.stub_responses(:get_job, reconstitute_response("media_convert/job_failed.json"))
92
+
93
+ ActiveEncode::Base.find(job_id)
94
+ end
95
+
96
+ let(:completed_output) do
97
+ [
98
+ { id: "1625859001514-vvqfwj-output-auto", url: "s3://output-bucket/active-encode-test/output.m3u8",
99
+ label: "output.m3u8", audio_codec: "AAC", duration: 888_020, video_codec: "H_264" },
100
+ { id: "1625859001514-vvqfwj-output-1080", url: "s3://output-bucket/active-encode-test/output-1080.m3u8",
101
+ label: "output-1080.m3u8", audio_bitrate: 128_000, audio_codec: "AAC", duration: 888_020,
102
+ video_bitrate: 8_500_000, height: 1080, width: 1920, video_codec: "H_264", frame_rate: 29.97 },
103
+ { id: "1625859001514-vvqfwj-output-720", url: "s3://output-bucket/active-encode-test/output-720.m3u8",
104
+ label: "output-720.m3u8", audio_bitrate: 96_000, audio_codec: "AAC", duration: 888_020,
105
+ video_bitrate: 5_000_000, height: 720, width: 1280, video_codec: "H_264", frame_rate: 29.97 },
106
+ { id: "1625859001514-vvqfwj-output-540", url: "s3://output-bucket/active-encode-test/output-540.m3u8",
107
+ label: "output-540.m3u8", audio_bitrate: 96_000, audio_codec: "AAC", duration: 888_020,
108
+ video_bitrate: 3_500_000, height: 540, width: 960, video_codec: "H_264", frame_rate: 29.97 }
109
+ ]
110
+ end
111
+ let(:completed_tech_metadata) { {} }
112
+ let(:failed_tech_metadata) { {} }
113
+
114
+ it_behaves_like "an ActiveEncode::EngineAdapter"
115
+
116
+ describe "output" do
117
+ it "contains all expected outputs" do
118
+ completed_output.each do |expected_output|
119
+ found_output = completed_job.output.find { |output| output.id == expected_output[:id] }
120
+ expected_output.each_pair do |key, value|
121
+ expect(found_output.send(key)).to eq(value)
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rails_helper'
3
- require 'shared_specs/engine_adapter_specs'
3
+ require 'active_encode/spec/shared_specs'
4
4
 
5
5
  describe ActiveEncode::EngineAdapters::PassThroughAdapter do
6
6
  around do |example|
@@ -145,7 +145,7 @@ describe ActiveEncode::EngineAdapters::PassThroughAdapter do
145
145
  end
146
146
 
147
147
  it { is_expected.to be_failed }
148
- its(:errors) { is_expected.not_to be_empty }
148
+ it { expect(subject.errors).to be_present }
149
149
  end
150
150
  end
151
151
  end
@@ -31,34 +31,34 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
31
31
  let(:create_output) { [{ id: "511404522", url: "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150610/c09b61e4d130ddf923f0653418a80b9c/399ae101c3f99b4f318635e78a4e587a.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=GY/9LMkQAiDOrMQwS5BkmOE200s%3D&Expires=1434033527", label: nil }] }
32
32
 
33
33
  it { is_expected.to be_a ActiveEncode::Base }
34
- its(:id) { is_expected.not_to be_empty }
34
+ it { expect(subject.id).not_to be_empty }
35
35
  it { is_expected.to be_running }
36
- # its(:output) { is_expected.to eq create_output }
37
- its(:current_operations) { is_expected.to be_empty }
38
- its(:percent_complete) { is_expected.to eq 0 }
39
- its(:errors) { is_expected.to be_empty }
40
- its(:created_at) { is_expected.to eq '2015-06-10T14:38:47Z' }
41
- its(:updated_at) { is_expected.to eq '2015-06-10T14:38:47Z' }
36
+ # it { expect(subject.output).to eq create_output }
37
+ it { expect(subject.current_operations).to be_empty }
38
+ it { expect(subject.percent_complete).to eq 0 }
39
+ it { expect(subject.errors).to be_empty }
40
+ it { expect(subject.created_at).to eq '2015-06-10T14:38:47Z' }
41
+ it { expect(subject.updated_at).to eq '2015-06-10T14:38:47Z' }
42
42
 
43
43
  context 'input' do
44
44
  subject { ActiveEncode::Base.create(file).input }
45
45
 
46
46
  it { is_expected.to be_a ActiveEncode::Input }
47
- its(:id) { is_expected.to eq "166179248" }
48
- its(:url) { is_expected.to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
49
- its(:width) { is_expected.to be_blank }
50
- its(:height) { is_expected.to be_blank }
51
- its(:frame_rate) { is_expected.to be_blank }
52
- its(:duration) { is_expected.to be_blank }
53
- its(:file_size) { is_expected.to be_blank }
54
- its(:checksum) { is_expected.to be_blank }
55
- its(:audio_codec) { is_expected.to be_blank }
56
- its(:video_codec) { is_expected.to be_blank }
57
- its(:audio_bitrate) { is_expected.to be_blank }
58
- its(:video_bitrate) { is_expected.to be_blank }
59
- its(:state) { is_expected.to eq :running }
60
- its(:created_at) { is_expected.to eq "2015-06-10T14:38:47Z" }
61
- its(:updated_at) { is_expected.to eq "2015-06-10T14:38:00Z" }
47
+ it { expect(subject.id).to eq "166179248" }
48
+ it { expect(subject.url).to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
49
+ it { expect(subject.width).to be_blank }
50
+ it { expect(subject.height).to be_blank }
51
+ it { expect(subject.frame_rate).to be_blank }
52
+ it { expect(subject.duration).to be_blank }
53
+ it { expect(subject.file_size).to be_blank }
54
+ it { expect(subject.checksum).to be_blank }
55
+ it { expect(subject.audio_codec).to be_blank }
56
+ it { expect(subject.video_codec).to be_blank }
57
+ it { expect(subject.audio_bitrate).to be_blank }
58
+ it { expect(subject.video_bitrate).to be_blank }
59
+ it { expect(subject.state).to eq :running }
60
+ it { expect(subject.created_at).to eq "2015-06-10T14:38:47Z" }
61
+ it { expect(subject.updated_at).to eq "2015-06-10T14:38:00Z" }
62
62
  end
63
63
 
64
64
  context 'output' do
@@ -69,22 +69,22 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
69
69
  expect(output).to be_a Array
70
70
  end
71
71
  it { is_expected.to be_a ActiveEncode::Output }
72
- its(:id) { is_expected.to eq "511404522" }
73
- its(:url) { is_expected.to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150610/c09b61e4d130ddf923f0653418a80b9c/399ae101c3f99b4f318635e78a4e587a.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=GY/9LMkQAiDOrMQwS5BkmOE200s%3D&Expires=1434033527" }
74
- its(:label) { is_expected.to be_blank }
75
- its(:width) { is_expected.to be_blank }
76
- its(:height) { is_expected.to be_blank }
77
- its(:frame_rate) { is_expected.to be_blank }
78
- its(:duration) { is_expected.to be_blank }
79
- its(:file_size) { is_expected.to be_blank }
80
- its(:checksum) { is_expected.to be_blank }
81
- its(:audio_codec) { is_expected.to be_blank }
82
- its(:video_codec) { is_expected.to be_blank }
83
- its(:audio_bitrate) { is_expected.to be_blank }
84
- its(:video_bitrate) { is_expected.to be_blank }
85
- its(:state) { is_expected.to eq :running }
86
- its(:created_at) { is_expected.to eq "2015-06-10T14:38:47Z" }
87
- its(:updated_at) { is_expected.to eq "2015-06-10T14:38:47Z" }
72
+ it { expect(subject.id).to eq "511404522" }
73
+ it { expect(subject.url).to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150610/c09b61e4d130ddf923f0653418a80b9c/399ae101c3f99b4f318635e78a4e587a.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=GY/9LMkQAiDOrMQwS5BkmOE200s%3D&Expires=1434033527" }
74
+ it { expect(subject.label).to be_blank }
75
+ it { expect(subject.width).to be_blank }
76
+ it { expect(subject.height).to be_blank }
77
+ it { expect(subject.frame_rate).to be_blank }
78
+ it { expect(subject.duration).to be_blank }
79
+ it { expect(subject.file_size).to be_blank }
80
+ it { expect(subject.checksum).to be_blank }
81
+ it { expect(subject.audio_codec).to be_blank }
82
+ it { expect(subject.video_codec).to be_blank }
83
+ it { expect(subject.audio_bitrate).to be_blank }
84
+ it { expect(subject.video_bitrate).to be_blank }
85
+ it { expect(subject.state).to eq :running }
86
+ it { expect(subject.created_at).to eq "2015-06-10T14:38:47Z" }
87
+ it { expect(subject.updated_at).to eq "2015-06-10T14:38:47Z" }
88
88
  end
89
89
  end
90
90
 
@@ -102,35 +102,35 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
102
102
  # let(:running_tech_metadata) { { audio_bitrate: "52", audio_codec: "aac", audio_channels: "2", duration: "57992", mime_type: "mpeg4", video_framerate: "29.97", height: "240", video_bitrate: "535", video_codec: "h264", width: "320" } }
103
103
 
104
104
  it { is_expected.to be_a ActiveEncode::Base }
105
- its(:id) { is_expected.to eq '166019107' }
105
+ it { expect(subject.id).to eq '166019107' }
106
106
  it { is_expected.to be_running }
107
- # its(:output) { is_expected.to eq running_output }
108
- its(:current_operations) { is_expected.to be_empty }
109
- its(:percent_complete) { is_expected.to eq 30.0 }
110
- its(:errors) { is_expected.to be_empty }
111
- its(:created_at) { is_expected.to eq '2015-06-09T16:18:26Z' }
112
- its(:updated_at) { is_expected.to eq '2015-06-09T16:18:28Z' }
113
-
114
- # its(:tech_metadata) { is_expected.to eq running_tech_metadata }
107
+ # it { expect(subject.output).to eq running_output }
108
+ it { expect(subject.current_operations).to be_empty }
109
+ it { expect(subject.percent_complete).to eq 30.0 }
110
+ it { expect(subject.errors).to be_empty }
111
+ it { expect(subject.created_at).to eq '2015-06-09T16:18:26Z' }
112
+ it { expect(subject.updated_at).to eq '2015-06-09T16:18:28Z' }
113
+
114
+ # it { expect(subject.tech_metadata).to eq running_tech_metadata }
115
115
  context 'input' do
116
116
  subject { ActiveEncode::Base.find('166019107').input }
117
117
 
118
118
  it { is_expected.to be_a ActiveEncode::Input }
119
- its(:id) { is_expected.to eq "165990056" }
120
- its(:url) { is_expected.to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
121
- its(:width) { is_expected.to eq 320 }
122
- its(:height) { is_expected.to eq 240 }
123
- its(:frame_rate) { is_expected.to eq 29.97 }
124
- its(:duration) { is_expected.to eq 57_992 }
125
- its(:file_size) { is_expected.to be_blank }
126
- its(:checksum) { is_expected.to be_blank }
127
- its(:audio_codec) { is_expected.to eq "aac" }
128
- its(:video_codec) { is_expected.to eq "h264" }
129
- its(:audio_bitrate) { is_expected.to eq 52 }
130
- its(:video_bitrate) { is_expected.to eq 535 }
131
- its(:state) { is_expected.to eq :completed }
132
- its(:created_at) { is_expected.to eq "2015-06-09T16:18:26Z" }
133
- its(:updated_at) { is_expected.to eq "2015-06-09T16:18:32Z" }
119
+ it { expect(subject.id).to eq "165990056" }
120
+ it { expect(subject.url).to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
121
+ it { expect(subject.width).to eq 320 }
122
+ it { expect(subject.height).to eq 240 }
123
+ it { expect(subject.frame_rate).to eq 29.97 }
124
+ it { expect(subject.duration).to eq 57_992 }
125
+ it { expect(subject.file_size).to be_blank }
126
+ it { expect(subject.checksum).to be_blank }
127
+ it { expect(subject.audio_codec).to eq "aac" }
128
+ it { expect(subject.video_codec).to eq "h264" }
129
+ it { expect(subject.audio_bitrate).to eq 52 }
130
+ it { expect(subject.video_bitrate).to eq 535 }
131
+ it { expect(subject.state).to eq :completed }
132
+ it { expect(subject.created_at).to eq "2015-06-09T16:18:26Z" }
133
+ it { expect(subject.updated_at).to eq "2015-06-09T16:18:32Z" }
134
134
  end
135
135
 
136
136
  context 'output' do
@@ -141,22 +141,22 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
141
141
  expect(output).to be_a Array
142
142
  end
143
143
  it { is_expected.to be_a ActiveEncode::Output }
144
- its(:id) { is_expected.to eq "510582971" }
145
- its(:url) { is_expected.to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150609/48a6907086c012f68b9ca43461280515/1726d7ec3e24f2171bd07b2abb807b6c.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=vSvlxU94wlQLEbpG3Zs8ibp4MoY%3D&Expires=1433953106" }
146
- its(:label) { is_expected.to be_blank }
147
- its(:width) { is_expected.to be_blank }
148
- its(:height) { is_expected.to be_blank }
149
- its(:frame_rate) { is_expected.to be_blank }
150
- its(:duration) { is_expected.to be_blank }
151
- its(:file_size) { is_expected.to be_blank }
152
- its(:checksum) { is_expected.to be_blank }
153
- its(:audio_codec) { is_expected.to be_blank }
154
- its(:video_codec) { is_expected.to be_blank }
155
- its(:audio_bitrate) { is_expected.to be_blank }
156
- its(:video_bitrate) { is_expected.to be_blank }
157
- its(:state) { is_expected.to eq :running }
158
- its(:created_at) { is_expected.to eq "2015-06-09T16:18:26Z" }
159
- its(:updated_at) { is_expected.to eq "2015-06-09T16:18:32Z" }
144
+ it { expect(subject.id).to eq "510582971" }
145
+ it { expect(subject.url).to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150609/48a6907086c012f68b9ca43461280515/1726d7ec3e24f2171bd07b2abb807b6c.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=vSvlxU94wlQLEbpG3Zs8ibp4MoY%3D&Expires=1433953106" }
146
+ it { expect(subject.label).to be_blank }
147
+ it { expect(subject.width).to be_blank }
148
+ it { expect(subject.height).to be_blank }
149
+ it { expect(subject.frame_rate).to be_blank }
150
+ it { expect(subject.duration).to be_blank }
151
+ it { expect(subject.file_size).to be_blank }
152
+ it { expect(subject.checksum).to be_blank }
153
+ it { expect(subject.audio_codec).to be_blank }
154
+ it { expect(subject.video_codec).to be_blank }
155
+ it { expect(subject.audio_bitrate).to be_blank }
156
+ it { expect(subject.video_bitrate).to be_blank }
157
+ it { expect(subject.state).to eq :running }
158
+ it { expect(subject.created_at).to eq "2015-06-09T16:18:26Z" }
159
+ it { expect(subject.updated_at).to eq "2015-06-09T16:18:32Z" }
160
160
  end
161
161
  end
162
162
 
@@ -166,33 +166,33 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
166
166
  let(:progress_response) { Zencoder::Response.new(body: JSON.parse(File.read('spec/fixtures/zencoder/job_progress_cancelled.json'))) }
167
167
 
168
168
  it { is_expected.to be_a ActiveEncode::Base }
169
- its(:id) { is_expected.to eq '165866551' }
169
+ it { expect(subject.id).to eq '165866551' }
170
170
  it { is_expected.to be_cancelled }
171
- its(:current_operations) { is_expected.to be_empty }
172
- its(:percent_complete) { is_expected.to eq 0 }
173
- its(:errors) { is_expected.to be_empty }
174
- its(:created_at) { is_expected.to eq '2015-06-08T20:43:23Z' }
175
- its(:updated_at) { is_expected.to eq '2015-06-08T20:43:26Z' }
171
+ it { expect(subject.current_operations).to be_empty }
172
+ it { expect(subject.percent_complete).to eq 0 }
173
+ it { expect(subject.errors).to be_empty }
174
+ it { expect(subject.created_at).to eq '2015-06-08T20:43:23Z' }
175
+ it { expect(subject.updated_at).to eq '2015-06-08T20:43:26Z' }
176
176
 
177
177
  context 'input' do
178
178
  subject { ActiveEncode::Base.find('165866551').input }
179
179
 
180
180
  it { is_expected.to be_a ActiveEncode::Input }
181
- its(:id) { is_expected.to eq "165837500" }
182
- its(:url) { is_expected.to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
183
- its(:width) { is_expected.to be_blank }
184
- its(:height) { is_expected.to be_blank }
185
- its(:frame_rate) { is_expected.to be_blank }
186
- its(:duration) { is_expected.to be_blank }
187
- its(:file_size) { is_expected.to be_blank }
188
- its(:checksum) { is_expected.to be_blank }
189
- its(:audio_codec) { is_expected.to be_blank }
190
- its(:video_codec) { is_expected.to be_blank }
191
- its(:audio_bitrate) { is_expected.to be_blank }
192
- its(:video_bitrate) { is_expected.to be_blank }
193
- its(:state) { is_expected.to eq :cancelled }
194
- its(:created_at) { is_expected.to eq "2015-06-08T20:43:23Z" }
195
- its(:updated_at) { is_expected.to eq "2015-06-08T20:43:26Z" }
181
+ it { expect(subject.id).to eq "165837500" }
182
+ it { expect(subject.url).to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
183
+ it { expect(subject.width).to be_blank }
184
+ it { expect(subject.height).to be_blank }
185
+ it { expect(subject.frame_rate).to be_blank }
186
+ it { expect(subject.duration).to be_blank }
187
+ it { expect(subject.file_size).to be_blank }
188
+ it { expect(subject.checksum).to be_blank }
189
+ it { expect(subject.audio_codec).to be_blank }
190
+ it { expect(subject.video_codec).to be_blank }
191
+ it { expect(subject.audio_bitrate).to be_blank }
192
+ it { expect(subject.video_bitrate).to be_blank }
193
+ it { expect(subject.state).to eq :cancelled }
194
+ it { expect(subject.created_at).to eq "2015-06-08T20:43:23Z" }
195
+ it { expect(subject.updated_at).to eq "2015-06-08T20:43:26Z" }
196
196
  end
197
197
  end
198
198
 
@@ -204,34 +204,34 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
204
204
  # let(:completed_tech_metadata) { { audio_bitrate: "52", audio_codec: "aac", audio_channels: "2", duration: "57992", mime_type: "mpeg4", video_framerate: "29.97", height: "240", video_bitrate: "535", video_codec: "h264", width: "320" } }
205
205
 
206
206
  it { is_expected.to be_a ActiveEncode::Base }
207
- its(:id) { is_expected.to eq '165839139' }
207
+ it { expect(subject.id).to eq '165839139' }
208
208
  it { is_expected.to be_completed }
209
- # its(:output) { is_expected.to include completed_output }
210
- its(:current_operations) { is_expected.to be_empty }
211
- its(:percent_complete) { is_expected.to eq 100 }
212
- its(:errors) { is_expected.to be_empty }
213
- its(:created_at) { is_expected.to eq '2015-06-08T18:13:53Z' }
214
- its(:updated_at) { is_expected.to eq '2015-06-08T18:14:06Z' }
209
+ # it { expect(subject.output).to include completed_output }
210
+ it { expect(subject.current_operations).to be_empty }
211
+ it { expect(subject.percent_complete).to eq 100 }
212
+ it { expect(subject.errors).to be_empty }
213
+ it { expect(subject.created_at).to eq '2015-06-08T18:13:53Z' }
214
+ it { expect(subject.updated_at).to eq '2015-06-08T18:14:06Z' }
215
215
 
216
216
  context 'input' do
217
217
  subject { ActiveEncode::Base.find('165839139').input }
218
218
 
219
219
  it { is_expected.to be_a ActiveEncode::Input }
220
- its(:id) { is_expected.to eq "165810088" }
221
- its(:url) { is_expected.to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
222
- its(:width) { is_expected.to eq 320 }
223
- its(:height) { is_expected.to eq 240 }
224
- its(:frame_rate) { is_expected.to eq 29.97 }
225
- its(:duration) { is_expected.to eq 57_992 }
226
- its(:file_size) { is_expected.to be_blank }
227
- its(:checksum) { is_expected.to be_blank }
228
- its(:audio_codec) { is_expected.to eq "aac" }
229
- its(:video_codec) { is_expected.to eq "h264" }
230
- its(:audio_bitrate) { is_expected.to eq 52 }
231
- its(:video_bitrate) { is_expected.to eq 535 }
232
- its(:state) { is_expected.to eq :completed }
233
- its(:created_at) { is_expected.to eq "2015-06-08T18:13:53Z" }
234
- its(:updated_at) { is_expected.to eq "2015-06-08T18:14:06Z" }
220
+ it { expect(subject.id).to eq "165810088" }
221
+ it { expect(subject.url).to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
222
+ it { expect(subject.width).to eq 320 }
223
+ it { expect(subject.height).to eq 240 }
224
+ it { expect(subject.frame_rate).to eq 29.97 }
225
+ it { expect(subject.duration).to eq 57_992 }
226
+ it { expect(subject.file_size).to be_blank }
227
+ it { expect(subject.checksum).to be_blank }
228
+ it { expect(subject.audio_codec).to eq "aac" }
229
+ it { expect(subject.video_codec).to eq "h264" }
230
+ it { expect(subject.audio_bitrate).to eq 52 }
231
+ it { expect(subject.video_bitrate).to eq 535 }
232
+ it { expect(subject.state).to eq :completed }
233
+ it { expect(subject.created_at).to eq "2015-06-08T18:13:53Z" }
234
+ it { expect(subject.updated_at).to eq "2015-06-08T18:14:06Z" }
235
235
  end
236
236
 
237
237
  context 'output' do
@@ -242,22 +242,22 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
242
242
  expect(output).to be_a Array
243
243
  end
244
244
  it { is_expected.to be_a ActiveEncode::Output }
245
- its(:id) { is_expected.to eq "509856876" }
246
- its(:url) { is_expected.to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150608/ebbe865f8ef1b960d7c2bb0663b88a12/0f1948dcb2fd701fba30ff21908fe460.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=1LgIyl/el9E7zeyPxzd/%2BNwez6Y%3D&Expires=1433873646" }
247
- its(:label) { is_expected.to be_blank }
248
- its(:width) { is_expected.to eq 320 }
249
- its(:height) { is_expected.to eq 240 }
250
- its(:frame_rate) { is_expected.to eq 29.97 }
251
- its(:duration) { is_expected.to eq 5000 }
252
- its(:file_size) { is_expected.to be_blank }
253
- its(:checksum) { is_expected.to be_blank }
254
- its(:audio_codec) { is_expected.to eq "aac" }
255
- its(:video_codec) { is_expected.to eq "h264" }
256
- its(:audio_bitrate) { is_expected.to eq 53 }
257
- its(:video_bitrate) { is_expected.to eq 549 }
258
- its(:state) { is_expected.to eq :completed }
259
- its(:created_at) { is_expected.to eq "2015-06-08T18:13:53Z" }
260
- its(:updated_at) { is_expected.to eq "2015-06-08T18:14:06Z" }
245
+ it { expect(subject.id).to eq "509856876" }
246
+ it { expect(subject.url).to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150608/ebbe865f8ef1b960d7c2bb0663b88a12/0f1948dcb2fd701fba30ff21908fe460.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=1LgIyl/el9E7zeyPxzd/%2BNwez6Y%3D&Expires=1433873646" }
247
+ it { expect(subject.label).to be_blank }
248
+ it { expect(subject.width).to eq 320 }
249
+ it { expect(subject.height).to eq 240 }
250
+ it { expect(subject.frame_rate).to eq 29.97 }
251
+ it { expect(subject.duration).to eq 5000 }
252
+ it { expect(subject.file_size).to be_blank }
253
+ it { expect(subject.checksum).to be_blank }
254
+ it { expect(subject.audio_codec).to eq "aac" }
255
+ it { expect(subject.video_codec).to eq "h264" }
256
+ it { expect(subject.audio_bitrate).to eq 53 }
257
+ it { expect(subject.video_bitrate).to eq 549 }
258
+ it { expect(subject.state).to eq :completed }
259
+ it { expect(subject.created_at).to eq "2015-06-08T18:13:53Z" }
260
+ it { expect(subject.updated_at).to eq "2015-06-08T18:14:06Z" }
261
261
  end
262
262
  end
263
263
 
@@ -269,34 +269,34 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
269
269
  let(:failed_errors) { "The file is an XML file, and doesn't contain audio or video tracks." }
270
270
 
271
271
  it { is_expected.to be_a ActiveEncode::Base }
272
- its(:id) { is_expected.to eq '166079902' }
272
+ it { expect(subject.id).to eq '166079902' }
273
273
  it { is_expected.to be_failed }
274
- its(:current_operations) { is_expected.to be_empty }
275
- its(:percent_complete) { is_expected.to eq 0 }
276
- its(:errors) { is_expected.to be_empty }
277
- its(:created_at) { is_expected.to eq '2015-06-09T20:52:57Z' }
278
- its(:updated_at) { is_expected.to eq '2015-06-09T20:53:00Z' }
274
+ it { expect(subject.current_operations).to be_empty }
275
+ it { expect(subject.percent_complete).to eq 0 }
276
+ it { expect(subject.errors).to be_empty }
277
+ it { expect(subject.created_at).to eq '2015-06-09T20:52:57Z' }
278
+ it { expect(subject.updated_at).to eq '2015-06-09T20:53:00Z' }
279
279
 
280
280
  context 'input' do
281
281
  subject { ActiveEncode::Base.find('165866551').input }
282
282
 
283
283
  it { is_expected.to be_a ActiveEncode::Input }
284
- its(:id) { is_expected.to eq "166050851" }
285
- its(:url) { is_expected.to eq "s3://zencoder-customer-ingest/uploads/2015-06-09/240330/187007/682c2d90-0eea-11e5-84c9-f158f44c3d50.xml" }
286
- its(:errors) { is_expected.to include failed_errors }
287
- its(:width) { is_expected.to be_blank }
288
- its(:height) { is_expected.to be_blank }
289
- its(:frame_rate) { is_expected.to be_blank }
290
- its(:duration) { is_expected.to be_blank }
291
- its(:file_size) { is_expected.to be_blank }
292
- its(:checksum) { is_expected.to be_blank }
293
- its(:audio_codec) { is_expected.to be_blank }
294
- its(:video_codec) { is_expected.to be_blank }
295
- its(:audio_bitrate) { is_expected.to be_blank }
296
- its(:video_bitrate) { is_expected.to be_blank }
297
- its(:state) { is_expected.to eq :failed }
298
- its(:created_at) { is_expected.to eq "2015-06-09T20:52:57Z" }
299
- its(:updated_at) { is_expected.to eq "2015-06-09T20:53:00Z" }
284
+ it { expect(subject.id).to eq "166050851" }
285
+ it { expect(subject.url).to eq "s3://zencoder-customer-ingest/uploads/2015-06-09/240330/187007/682c2d90-0eea-11e5-84c9-f158f44c3d50.xml" }
286
+ it { expect(subject.errors).to include failed_errors }
287
+ it { expect(subject.width).to be_blank }
288
+ it { expect(subject.height).to be_blank }
289
+ it { expect(subject.frame_rate).to be_blank }
290
+ it { expect(subject.duration).to be_blank }
291
+ it { expect(subject.file_size).to be_blank }
292
+ it { expect(subject.checksum).to be_blank }
293
+ it { expect(subject.audio_codec).to be_blank }
294
+ it { expect(subject.video_codec).to be_blank }
295
+ it { expect(subject.audio_bitrate).to be_blank }
296
+ it { expect(subject.video_bitrate).to be_blank }
297
+ it { expect(subject.state).to eq :failed }
298
+ it { expect(subject.created_at).to eq "2015-06-09T20:52:57Z" }
299
+ it { expect(subject.updated_at).to eq "2015-06-09T20:53:00Z" }
300
300
  end
301
301
  end
302
302
  end
@@ -315,7 +315,7 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
315
315
 
316
316
  let(:encode) { ActiveEncode::Base.create(file) }
317
317
  it { is_expected.to be_a ActiveEncode::Base }
318
- its(:id) { is_expected.to eq '165866551' }
318
+ it { expect(subject.id).to eq '165866551' }
319
319
  it { is_expected.to be_cancelled }
320
320
  end
321
321
 
@@ -332,34 +332,34 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
332
332
  # let(:reload_tech_metadata) { { audio_bitrate: "52", audio_codec: "aac", audio_channels: "2", duration: "57992", mime_type: "mpeg4", video_framerate: "29.97", height: "240", video_bitrate: "535", video_codec: "h264", width: "320" } }
333
333
 
334
334
  it { is_expected.to be_a ActiveEncode::Base }
335
- its(:id) { is_expected.to eq '166019107' }
335
+ it { expect(subject.id).to eq '166019107' }
336
336
  it { is_expected.to be_running }
337
- # its(:output) { is_expected.to eq reload_output }
338
- its(:current_operations) { is_expected.to be_empty }
339
- its(:percent_complete) { is_expected.to eq 30.0 }
340
- its(:errors) { is_expected.to be_empty }
341
- its(:created_at) { is_expected.to eq '2015-06-09T16:18:26Z' }
342
- its(:updated_at) { is_expected.to eq '2015-06-09T16:18:28Z' }
337
+ # it { expect(subject.output).to eq reload_output }
338
+ it { expect(subject.current_operations).to be_empty }
339
+ it { expect(subject.percent_complete).to eq 30.0 }
340
+ it { expect(subject.errors).to be_empty }
341
+ it { expect(subject.created_at).to eq '2015-06-09T16:18:26Z' }
342
+ it { expect(subject.updated_at).to eq '2015-06-09T16:18:28Z' }
343
343
 
344
344
  context 'input' do
345
345
  subject { ActiveEncode::Base.find('166019107').reload.input }
346
346
 
347
347
  it { is_expected.to be_a ActiveEncode::Input }
348
- its(:id) { is_expected.to eq "165990056" }
349
- its(:url) { is_expected.to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
350
- its(:width) { is_expected.to eq 320 }
351
- its(:height) { is_expected.to eq 240 }
352
- its(:frame_rate) { is_expected.to eq 29.97 }
353
- its(:duration) { is_expected.to eq 57_992 }
354
- its(:file_size) { is_expected.to be_blank }
355
- its(:checksum) { is_expected.to be_blank }
356
- its(:audio_codec) { is_expected.to eq "aac" }
357
- its(:video_codec) { is_expected.to eq "h264" }
358
- its(:audio_bitrate) { is_expected.to eq 52 }
359
- its(:video_bitrate) { is_expected.to eq 535 }
360
- its(:state) { is_expected.to eq :completed }
361
- its(:created_at) { is_expected.to eq "2015-06-09T16:18:26Z" }
362
- its(:updated_at) { is_expected.to eq "2015-06-09T16:18:32Z" }
348
+ it { expect(subject.id).to eq "165990056" }
349
+ it { expect(subject.url).to eq "https://archive.org/download/LuckyStr1948_2/LuckyStr1948_2_512kb.mp4" }
350
+ it { expect(subject.width).to eq 320 }
351
+ it { expect(subject.height).to eq 240 }
352
+ it { expect(subject.frame_rate).to eq 29.97 }
353
+ it { expect(subject.duration).to eq 57_992 }
354
+ it { expect(subject.file_size).to be_blank }
355
+ it { expect(subject.checksum).to be_blank }
356
+ it { expect(subject.audio_codec).to eq "aac" }
357
+ it { expect(subject.video_codec).to eq "h264" }
358
+ it { expect(subject.audio_bitrate).to eq 52 }
359
+ it { expect(subject.video_bitrate).to eq 535 }
360
+ it { expect(subject.state).to eq :completed }
361
+ it { expect(subject.created_at).to eq "2015-06-09T16:18:26Z" }
362
+ it { expect(subject.updated_at).to eq "2015-06-09T16:18:32Z" }
363
363
  end
364
364
 
365
365
  context 'output' do
@@ -370,22 +370,22 @@ describe ActiveEncode::EngineAdapters::ZencoderAdapter do
370
370
  expect(output).to be_a Array
371
371
  end
372
372
  it { is_expected.to be_a ActiveEncode::Output }
373
- its(:id) { is_expected.to eq "510582971" }
374
- its(:url) { is_expected.to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150609/48a6907086c012f68b9ca43461280515/1726d7ec3e24f2171bd07b2abb807b6c.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=vSvlxU94wlQLEbpG3Zs8ibp4MoY%3D&Expires=1433953106" }
375
- its(:label) { is_expected.to be_blank }
376
- its(:width) { is_expected.to be_blank }
377
- its(:height) { is_expected.to be_blank }
378
- its(:frame_rate) { is_expected.to be_blank }
379
- its(:duration) { is_expected.to be_blank }
380
- its(:file_size) { is_expected.to be_blank }
381
- its(:checksum) { is_expected.to be_blank }
382
- its(:audio_codec) { is_expected.to be_blank }
383
- its(:video_codec) { is_expected.to be_blank }
384
- its(:audio_bitrate) { is_expected.to be_blank }
385
- its(:video_bitrate) { is_expected.to be_blank }
386
- its(:state) { is_expected.to eq :running }
387
- its(:created_at) { is_expected.to eq "2015-06-09T16:18:26Z" }
388
- its(:updated_at) { is_expected.to eq "2015-06-09T16:18:32Z" }
373
+ it { expect(subject.id).to eq "510582971" }
374
+ it { expect(subject.url).to eq "https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20150609/48a6907086c012f68b9ca43461280515/1726d7ec3e24f2171bd07b2abb807b6c.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=vSvlxU94wlQLEbpG3Zs8ibp4MoY%3D&Expires=1433953106" }
375
+ it { expect(subject.label).to be_blank }
376
+ it { expect(subject.width).to be_blank }
377
+ it { expect(subject.height).to be_blank }
378
+ it { expect(subject.frame_rate).to be_blank }
379
+ it { expect(subject.duration).to be_blank }
380
+ it { expect(subject.file_size).to be_blank }
381
+ it { expect(subject.checksum).to be_blank }
382
+ it { expect(subject.audio_codec).to be_blank }
383
+ it { expect(subject.video_codec).to be_blank }
384
+ it { expect(subject.audio_bitrate).to be_blank }
385
+ it { expect(subject.video_bitrate).to be_blank }
386
+ it { expect(subject.state).to eq :running }
387
+ it { expect(subject.created_at).to eq "2015-06-09T16:18:26Z" }
388
+ it { expect(subject.updated_at).to eq "2015-06-09T16:18:32Z" }
389
389
  end
390
390
  end
391
391
  end