themoviedb-api 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +90 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +64 -0
- data/README.md +6 -0
- data/lib/tmdb.rb +62 -0
- data/lib/tmdb/account.rb +4 -0
- data/lib/tmdb/api.rb +26 -0
- data/lib/tmdb/authentication.rb +4 -0
- data/lib/tmdb/backdrop.rb +4 -0
- data/lib/tmdb/certification.rb +27 -0
- data/lib/tmdb/change.rb +44 -0
- data/lib/tmdb/change_item.rb +4 -0
- data/lib/tmdb/collection.rb +32 -0
- data/lib/tmdb/company.rb +21 -0
- data/lib/tmdb/configuration.rb +10 -0
- data/lib/tmdb/country.rb +4 -0
- data/lib/tmdb/credit.rb +26 -0
- data/lib/tmdb/discover.rb +27 -0
- data/lib/tmdb/error.rb +4 -0
- data/lib/tmdb/find.rb +47 -0
- data/lib/tmdb/genre.rb +32 -0
- data/lib/tmdb/image.rb +25 -0
- data/lib/tmdb/job.rb +13 -0
- data/lib/tmdb/keyword.rb +21 -0
- data/lib/tmdb/language.rb +4 -0
- data/lib/tmdb/list.rb +4 -0
- data/lib/tmdb/media.rb +4 -0
- data/lib/tmdb/movie.rb +173 -0
- data/lib/tmdb/multi.rb +4 -0
- data/lib/tmdb/network.rb +10 -0
- data/lib/tmdb/person.rb +91 -0
- data/lib/tmdb/poster.rb +4 -0
- data/lib/tmdb/rating.rb +4 -0
- data/lib/tmdb/release.rb +4 -0
- data/lib/tmdb/resource.rb +30 -0
- data/lib/tmdb/review.rb +10 -0
- data/lib/tmdb/search.rb +69 -0
- data/lib/tmdb/struct.rb +30 -0
- data/lib/tmdb/translation.rb +4 -0
- data/lib/tmdb/tv.rb +165 -0
- data/lib/tmdb/tv/episode.rb +89 -0
- data/lib/tmdb/tv/season.rb +91 -0
- data/lib/tmdb/utils.rb +50 -0
- data/lib/tmdb/version.rb +3 -0
- data/lib/tmdb/video.rb +4 -0
- data/spec/api_spec.rb +44 -0
- data/spec/certification_spec.rb +62 -0
- data/spec/change_spec.rb +71 -0
- data/spec/collection_spec.rb +69 -0
- data/spec/company_spec.rb +50 -0
- data/spec/configuration_spec.rb +43 -0
- data/spec/credit_spec.rb +49 -0
- data/spec/discover_spec.rb +54 -0
- data/spec/find_spec.rb +105 -0
- data/spec/genre_spec.rb +75 -0
- data/spec/job_spec.rb +39 -0
- data/spec/keyword_spec.rb +52 -0
- data/spec/movie_spec.rb +362 -0
- data/spec/network_spec.rb +33 -0
- data/spec/person_spec.rb +201 -0
- data/spec/resource_spec.rb +47 -0
- data/spec/review_spec.rb +33 -0
- data/spec/search_spec.rb +161 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/tv/episode_spec.rb +154 -0
- data/spec/tv/season_spec.rb +144 -0
- data/spec/tv_spec.rb +352 -0
- data/spec/vcr/certification/movie_list.yml +305 -0
- data/spec/vcr/certification/tv_list.yml +318 -0
- data/spec/vcr/change/movie.yml +58 -0
- data/spec/vcr/change/person.yml +58 -0
- data/spec/vcr/change/tv.yml +58 -0
- data/spec/vcr/collection/backdrops.yml +58 -0
- data/spec/vcr/collection/detail.yml +73 -0
- data/spec/vcr/collection/posters.yml +58 -0
- data/spec/vcr/company/detail.yml +56 -0
- data/spec/vcr/company/movies.yml +363 -0
- data/spec/vcr/configuration/get.yml +50 -0
- data/spec/vcr/credit/detail.yml +61 -0
- data/spec/vcr/discover/movie.yml +361 -0
- data/spec/vcr/discover/tv.yml +401 -0
- data/spec/vcr/find/movie.yml +64 -0
- data/spec/vcr/find/people.yml +114 -0
- data/spec/vcr/find/tv_episode.yml +66 -0
- data/spec/vcr/find/tv_season.yml +66 -0
- data/spec/vcr/find/tv_serie.yml +79 -0
- data/spec/vcr/genre/movie_list.yml +57 -0
- data/spec/vcr/genre/movies.yml +330 -0
- data/spec/vcr/genre/tv_list.yml +58 -0
- data/spec/vcr/job/list.yml +128 -0
- data/spec/vcr/keyword/detail.yml +56 -0
- data/spec/vcr/keyword/movies.yml +344 -0
- data/spec/vcr/movie/alternative_titles.yml +69 -0
- data/spec/vcr/movie/backdrops.yml +58 -0
- data/spec/vcr/movie/cast.yml +225 -0
- data/spec/vcr/movie/changes.yml +57 -0
- data/spec/vcr/movie/crew.yml +225 -0
- data/spec/vcr/movie/detail.yml +69 -0
- data/spec/vcr/movie/director.yml +225 -0
- data/spec/vcr/movie/keywords.yml +57 -0
- data/spec/vcr/movie/latest.yml +60 -0
- data/spec/vcr/movie/lists.yml +157 -0
- data/spec/vcr/movie/now_playing.yml +331 -0
- data/spec/vcr/movie/popular.yml +361 -0
- data/spec/vcr/movie/posters.yml +58 -0
- data/spec/vcr/movie/releases.yml +57 -0
- data/spec/vcr/movie/reviews.yml +56 -0
- data/spec/vcr/movie/similar.yml +354 -0
- data/spec/vcr/movie/top_rated.yml +343 -0
- data/spec/vcr/movie/translations.yml +96 -0
- data/spec/vcr/movie/upcoming.yml +313 -0
- data/spec/vcr/movie/videos.yml +57 -0
- data/spec/vcr/network/detail.yml +56 -0
- data/spec/vcr/person/changes.yml +61 -0
- data/spec/vcr/person/combined_credits.yml +317 -0
- data/spec/vcr/person/detail.yml +72 -0
- data/spec/vcr/person/external_ids.yml +56 -0
- data/spec/vcr/person/images.yml +56 -0
- data/spec/vcr/person/latest.yml +61 -0
- data/spec/vcr/person/movie_credits.yml +293 -0
- data/spec/vcr/person/popular.yml +1116 -0
- data/spec/vcr/person/tagged_images.yml +458 -0
- data/spec/vcr/person/tv_credits.yml +82 -0
- data/spec/vcr/resource/configuration_get.yml +50 -0
- data/spec/vcr/review/detail.yml +66 -0
- data/spec/vcr/search/collection.yml +58 -0
- data/spec/vcr/search/company.yml +70 -0
- data/spec/vcr/search/keyword.yml +61 -0
- data/spec/vcr/search/list.yml +70 -0
- data/spec/vcr/search/movie.yml +335 -0
- data/spec/vcr/search/multi.yml +219 -0
- data/spec/vcr/search/person.yml +117 -0
- data/spec/vcr/search/tv.yml +300 -0
- data/spec/vcr/tv/airing_today.yml +503 -0
- data/spec/vcr/tv/alternative_titles.yml +59 -0
- data/spec/vcr/tv/backdrops.yml +58 -0
- data/spec/vcr/tv/cast.yml +86 -0
- data/spec/vcr/tv/changes.yml +58 -0
- data/spec/vcr/tv/content_ratings.yml +56 -0
- data/spec/vcr/tv/crew.yml +86 -0
- data/spec/vcr/tv/detail.yml +71 -0
- data/spec/vcr/tv/episode/cast.yml +70 -0
- data/spec/vcr/tv/episode/changes.yml +66 -0
- data/spec/vcr/tv/episode/crew.yml +70 -0
- data/spec/vcr/tv/episode/detail.yml +68 -0
- data/spec/vcr/tv/episode/external_ids.yml +56 -0
- data/spec/vcr/tv/episode/guest_stars.yml +70 -0
- data/spec/vcr/tv/episode/posters.yml +58 -0
- data/spec/vcr/tv/episode/videos.yml +56 -0
- data/spec/vcr/tv/external_ids.yml +56 -0
- data/spec/vcr/tv/keywords.yml +59 -0
- data/spec/vcr/tv/latest.yml +97 -0
- data/spec/vcr/tv/on_the_air.yml +421 -0
- data/spec/vcr/tv/popular.yml +401 -0
- data/spec/vcr/tv/posters.yml +58 -0
- data/spec/vcr/tv/season/cast.yml +69 -0
- data/spec/vcr/tv/season/changes.yml +69 -0
- data/spec/vcr/tv/season/crew.yml +69 -0
- data/spec/vcr/tv/season/detail.yml +649 -0
- data/spec/vcr/tv/season/external_ids.yml +56 -0
- data/spec/vcr/tv/season/posters.yml +58 -0
- data/spec/vcr/tv/season/videos.yml +72 -0
- data/spec/vcr/tv/similar.yml +441 -0
- data/spec/vcr/tv/top_rated.yml +454 -0
- data/spec/vcr/tv/translations.yml +95 -0
- data/spec/vcr/tv/videos.yml +57 -0
- data/themoviedb-api.gemspec +30 -0
- metadata +433 -0
data/lib/tmdb/utils.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
module Tmdb
|
2
|
+
module Utils
|
3
|
+
def has_errors?(response)
|
4
|
+
# status_code possibilities
|
5
|
+
# 6: Invalid id
|
6
|
+
# 7: Invalid API key
|
7
|
+
# 10: API key suspended, not good
|
8
|
+
# 12: The item/record was updated successfully
|
9
|
+
# 17: Session denied
|
10
|
+
if response.code != 200
|
11
|
+
case response.fetch('status_code', -1)
|
12
|
+
when is_item_id_invalid?
|
13
|
+
return true
|
14
|
+
when is_api_key_invalid?
|
15
|
+
return true
|
16
|
+
when is_api_key_suspended?
|
17
|
+
return true
|
18
|
+
when is_session_denied?
|
19
|
+
return true
|
20
|
+
when is_update_successful?
|
21
|
+
return false
|
22
|
+
else
|
23
|
+
return true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
return false
|
28
|
+
end
|
29
|
+
|
30
|
+
def is_item_id_invalid?
|
31
|
+
->(status_code) { status_code == 6 }
|
32
|
+
end
|
33
|
+
|
34
|
+
def is_api_key_invalid?
|
35
|
+
->(status_code) { status_code == 7 }
|
36
|
+
end
|
37
|
+
|
38
|
+
def is_api_key_suspended?
|
39
|
+
->(status_code) { status_code == 10 }
|
40
|
+
end
|
41
|
+
|
42
|
+
def is_update_successful?
|
43
|
+
->(status_code) { status_code == 12 }
|
44
|
+
end
|
45
|
+
|
46
|
+
def is_session_denied?
|
47
|
+
->(status_code) { status_code == 17 }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/tmdb/version.rb
ADDED
data/lib/tmdb/video.rb
ADDED
data/spec/api_spec.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Tmdb::Api do
|
5
|
+
|
6
|
+
after(:all) do
|
7
|
+
Tmdb::Api.key(nil)
|
8
|
+
Tmdb::Api.language(nil)
|
9
|
+
end
|
10
|
+
|
11
|
+
let!(:api) do
|
12
|
+
Tmdb::Api.key(nil)
|
13
|
+
Tmdb::Api.language(nil)
|
14
|
+
|
15
|
+
Tmdb::Api
|
16
|
+
end
|
17
|
+
|
18
|
+
it { expect(Tmdb::Api).to respond_to(:params) }
|
19
|
+
it { expect(Tmdb::Api).to respond_to(:key) }
|
20
|
+
it { expect(Tmdb::Api).to respond_to(:language) }
|
21
|
+
|
22
|
+
subject { api }
|
23
|
+
|
24
|
+
it 'param should be an Hash' do
|
25
|
+
expect(subject.params).to be_an_instance_of(Hash)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should set the API Key' do
|
29
|
+
expect {
|
30
|
+
subject.key(TmdbDefaultApiKey)
|
31
|
+
}.to change {
|
32
|
+
subject.params[:api_key]
|
33
|
+
}.from(nil).to(TmdbDefaultApiKey)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should set the correct language' do
|
37
|
+
expect {
|
38
|
+
subject.language(TmdbDefaultLanguage)
|
39
|
+
}.to change {
|
40
|
+
subject.params[:language]
|
41
|
+
}.from(nil).to(TmdbDefaultLanguage)
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'vcr'
|
4
|
+
|
5
|
+
describe Tmdb::Certification do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
Tmdb::Api.key(TmdbDefaultApiKey)
|
9
|
+
Tmdb::Api.language(TmdbDefaultLanguage)
|
10
|
+
end
|
11
|
+
|
12
|
+
after(:all) do
|
13
|
+
Tmdb::Api.key(nil)
|
14
|
+
Tmdb::Api.language(nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { Tmdb::Certification }
|
18
|
+
|
19
|
+
it { is_expected.to respond_to(:movie_list) }
|
20
|
+
it { is_expected.to respond_to(:tv_list) }
|
21
|
+
|
22
|
+
context '#movie_list' do
|
23
|
+
let(:certification_movie_list) do
|
24
|
+
VCR.use_cassette 'certification/movie_list' do
|
25
|
+
Tmdb::Certification.movie_list
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
subject { certification_movie_list }
|
30
|
+
|
31
|
+
it 'should be an Hash' do
|
32
|
+
expect(subject).to be_an_instance_of(Hash)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should contain an Array of Tmdb::Certification' do
|
36
|
+
rand_key = subject.keys.sample
|
37
|
+
expect(subject[rand_key]).to be_an_instance_of(Array)
|
38
|
+
expect(subject[rand_key].sample).to be_an_instance_of(Tmdb::Certification)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context '#tv_list' do
|
43
|
+
let(:certification_tv_list) do
|
44
|
+
VCR.use_cassette 'certification/tv_list' do
|
45
|
+
Tmdb::Certification.tv_list
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
subject { certification_tv_list }
|
50
|
+
|
51
|
+
it 'should be an Hash' do
|
52
|
+
expect(subject).to be_an_instance_of(Hash)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should contain an Array of Tmdb::Certification' do
|
56
|
+
rand_key = subject.keys.sample
|
57
|
+
expect(subject[rand_key]).to be_an_instance_of(Array)
|
58
|
+
expect(subject[rand_key].sample).to be_an_instance_of(Tmdb::Certification)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
data/spec/change_spec.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'vcr'
|
4
|
+
|
5
|
+
describe Tmdb::Change do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
Tmdb::Api.key(TmdbDefaultApiKey)
|
9
|
+
Tmdb::Api.language(TmdbDefaultLanguage)
|
10
|
+
end
|
11
|
+
|
12
|
+
after(:all) do
|
13
|
+
Tmdb::Api.key(nil)
|
14
|
+
Tmdb::Api.language(nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { Tmdb::Change }
|
18
|
+
|
19
|
+
it { is_expected.to respond_to(:movie) }
|
20
|
+
it { is_expected.to respond_to(:person) }
|
21
|
+
it { is_expected.to respond_to(:tv) }
|
22
|
+
|
23
|
+
context '#movie' do
|
24
|
+
let(:movie) do
|
25
|
+
VCR.use_cassette 'change/movie' do
|
26
|
+
Tmdb::Change.movie
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
subject { movie }
|
31
|
+
|
32
|
+
it { expect(subject).to be_an_instance_of(Tmdb::Change) }
|
33
|
+
|
34
|
+
it 'should have results of kind Tmdb::Movie' do
|
35
|
+
expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context '#person' do
|
40
|
+
let(:person) do
|
41
|
+
VCR.use_cassette 'change/person' do
|
42
|
+
Tmdb::Change.person
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
subject { person }
|
47
|
+
|
48
|
+
it { expect(subject).to be_an_instance_of(Tmdb::Change) }
|
49
|
+
|
50
|
+
it 'should have results of kind Tmdb::Person' do
|
51
|
+
expect(subject.results.sample).to be_an_instance_of(Tmdb::Person)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context '#tv' do
|
56
|
+
let(:tv) do
|
57
|
+
VCR.use_cassette 'change/tv' do
|
58
|
+
Tmdb::Change.tv
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
subject { tv }
|
63
|
+
|
64
|
+
it { expect(subject).to be_an_instance_of(Tmdb::Change) }
|
65
|
+
|
66
|
+
it 'should have results of kind Tmdb::TV' do
|
67
|
+
expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'vcr'
|
4
|
+
|
5
|
+
describe Tmdb::Collection do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
Tmdb::Api.key(TmdbDefaultApiKey)
|
9
|
+
Tmdb::Api.language(TmdbDefaultLanguage)
|
10
|
+
end
|
11
|
+
|
12
|
+
after(:all) do
|
13
|
+
Tmdb::Api.key(nil)
|
14
|
+
Tmdb::Api.language(nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { Tmdb::Collection }
|
18
|
+
|
19
|
+
it { is_expected.to respond_to(:detail) }
|
20
|
+
it { is_expected.to respond_to(:backdrops) }
|
21
|
+
it { is_expected.to respond_to(:posters) }
|
22
|
+
|
23
|
+
context '#detail' do
|
24
|
+
let(:detail) do
|
25
|
+
VCR.use_cassette 'collection/detail' do
|
26
|
+
Tmdb::Collection.detail(10)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
subject { detail }
|
31
|
+
|
32
|
+
it { expect(subject).to be_an_instance_of(Tmdb::Collection) }
|
33
|
+
|
34
|
+
it 'should have results of kind Tmdb::Movie' do
|
35
|
+
expect(subject.parts.sample).to be_an_instance_of(Tmdb::Movie)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context '#backdrops' do
|
40
|
+
let(:backdrops) do
|
41
|
+
VCR.use_cassette 'collection/backdrops' do
|
42
|
+
Tmdb::Collection.backdrops(10)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
subject { backdrops }
|
47
|
+
|
48
|
+
it 'should return an array of Tmdb::Backdrop' do
|
49
|
+
expect(subject).to be_an_instance_of(Array)
|
50
|
+
expect(subject.sample).to be_an_instance_of(Tmdb::Backdrop)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context '#posters' do
|
55
|
+
let(:posters) do
|
56
|
+
VCR.use_cassette 'collection/posters' do
|
57
|
+
Tmdb::Collection.posters(10)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
subject { posters }
|
62
|
+
|
63
|
+
it 'should return an array of Tmdb::Poster' do
|
64
|
+
expect(subject).to be_an_instance_of(Array)
|
65
|
+
expect(subject.sample).to be_an_instance_of(Tmdb::Poster)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'vcr'
|
4
|
+
|
5
|
+
describe Tmdb::Company do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
Tmdb::Api.key(TmdbDefaultApiKey)
|
9
|
+
Tmdb::Api.language(TmdbDefaultLanguage)
|
10
|
+
end
|
11
|
+
|
12
|
+
after(:all) do
|
13
|
+
Tmdb::Api.key(nil)
|
14
|
+
Tmdb::Api.language(nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { Tmdb::Company }
|
18
|
+
|
19
|
+
it { is_expected.to respond_to(:detail) }
|
20
|
+
it { is_expected.to respond_to(:movies) }
|
21
|
+
|
22
|
+
context '#detail' do
|
23
|
+
let(:detail) do
|
24
|
+
VCR.use_cassette 'company/detail' do
|
25
|
+
Tmdb::Company.detail(1)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
subject { detail }
|
30
|
+
|
31
|
+
it { expect(subject).to be_an_instance_of(Tmdb::Company) }
|
32
|
+
end
|
33
|
+
|
34
|
+
context '#movies' do
|
35
|
+
let(:movies) do
|
36
|
+
VCR.use_cassette 'company/movies' do
|
37
|
+
Tmdb::Company.movies(1)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
subject { movies }
|
42
|
+
|
43
|
+
it { expect(subject).to be_an_instance_of(Tmdb::Company) }
|
44
|
+
|
45
|
+
it 'should have results of kind Tmdb::Movie' do
|
46
|
+
expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'vcr'
|
4
|
+
|
5
|
+
describe Tmdb::Configuration do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
Tmdb::Api.key(TmdbDefaultApiKey)
|
9
|
+
Tmdb::Api.language(TmdbDefaultLanguage)
|
10
|
+
end
|
11
|
+
|
12
|
+
after(:all) do
|
13
|
+
Tmdb::Api.key(nil)
|
14
|
+
Tmdb::Api.language(nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { Tmdb::Configuration }
|
18
|
+
|
19
|
+
it { is_expected.to respond_to(:get) }
|
20
|
+
|
21
|
+
context '#get' do
|
22
|
+
let(:configuration_get) do
|
23
|
+
VCR.use_cassette 'configuration/get' do
|
24
|
+
Tmdb::Configuration.get
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
subject { configuration_get }
|
29
|
+
|
30
|
+
it 'should be a Tmdb::Configuration' do
|
31
|
+
expect(subject).to be_an_instance_of(Tmdb::Configuration)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should contain "images" configuration' do
|
35
|
+
expect(subject.images).to be_an_instance_of(Tmdb::Configuration)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should contain "change_keys" configuration' do
|
39
|
+
expect(subject.images).to be_an_instance_of(Tmdb::Configuration)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
data/spec/credit_spec.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'vcr'
|
4
|
+
|
5
|
+
describe Tmdb::Credit do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
Tmdb::Api.key(TmdbDefaultApiKey)
|
9
|
+
Tmdb::Api.language(TmdbDefaultLanguage)
|
10
|
+
end
|
11
|
+
|
12
|
+
after(:all) do
|
13
|
+
Tmdb::Api.key(nil)
|
14
|
+
Tmdb::Api.language(nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { Tmdb::Credit }
|
18
|
+
|
19
|
+
it { is_expected.to respond_to(:detail) }
|
20
|
+
|
21
|
+
context '#detail' do
|
22
|
+
let(:detail) do
|
23
|
+
VCR.use_cassette 'credit/detail' do
|
24
|
+
Tmdb::Credit.detail('525333fb19c295794002c720')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
subject { detail }
|
29
|
+
|
30
|
+
it { expect(subject).to be_an_instance_of(Tmdb::Credit) }
|
31
|
+
|
32
|
+
it 'should have media of kind Tmdb::Media' do
|
33
|
+
expect(subject.media).to be_an_instance_of(Tmdb::Media)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should have media with episodes of kind Tmdb::Tv::Episode' do
|
37
|
+
expect(subject.media.episodes.sample).to be_an_instance_of(Tmdb::Tv::Episode)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should have media with seasons of kind Array' do
|
41
|
+
expect(subject.media.seasons).to be_an_instance_of(Array)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should have a person associated of kind Tmdb::Person' do
|
45
|
+
expect(subject.person).to be_an_instance_of(Tmdb::Person)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|