themoviedb-api 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +90 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +6 -0
  6. data/Gemfile +4 -0
  7. data/Gemfile.lock +64 -0
  8. data/README.md +6 -0
  9. data/lib/tmdb.rb +62 -0
  10. data/lib/tmdb/account.rb +4 -0
  11. data/lib/tmdb/api.rb +26 -0
  12. data/lib/tmdb/authentication.rb +4 -0
  13. data/lib/tmdb/backdrop.rb +4 -0
  14. data/lib/tmdb/certification.rb +27 -0
  15. data/lib/tmdb/change.rb +44 -0
  16. data/lib/tmdb/change_item.rb +4 -0
  17. data/lib/tmdb/collection.rb +32 -0
  18. data/lib/tmdb/company.rb +21 -0
  19. data/lib/tmdb/configuration.rb +10 -0
  20. data/lib/tmdb/country.rb +4 -0
  21. data/lib/tmdb/credit.rb +26 -0
  22. data/lib/tmdb/discover.rb +27 -0
  23. data/lib/tmdb/error.rb +4 -0
  24. data/lib/tmdb/find.rb +47 -0
  25. data/lib/tmdb/genre.rb +32 -0
  26. data/lib/tmdb/image.rb +25 -0
  27. data/lib/tmdb/job.rb +13 -0
  28. data/lib/tmdb/keyword.rb +21 -0
  29. data/lib/tmdb/language.rb +4 -0
  30. data/lib/tmdb/list.rb +4 -0
  31. data/lib/tmdb/media.rb +4 -0
  32. data/lib/tmdb/movie.rb +173 -0
  33. data/lib/tmdb/multi.rb +4 -0
  34. data/lib/tmdb/network.rb +10 -0
  35. data/lib/tmdb/person.rb +91 -0
  36. data/lib/tmdb/poster.rb +4 -0
  37. data/lib/tmdb/rating.rb +4 -0
  38. data/lib/tmdb/release.rb +4 -0
  39. data/lib/tmdb/resource.rb +30 -0
  40. data/lib/tmdb/review.rb +10 -0
  41. data/lib/tmdb/search.rb +69 -0
  42. data/lib/tmdb/struct.rb +30 -0
  43. data/lib/tmdb/translation.rb +4 -0
  44. data/lib/tmdb/tv.rb +165 -0
  45. data/lib/tmdb/tv/episode.rb +89 -0
  46. data/lib/tmdb/tv/season.rb +91 -0
  47. data/lib/tmdb/utils.rb +50 -0
  48. data/lib/tmdb/version.rb +3 -0
  49. data/lib/tmdb/video.rb +4 -0
  50. data/spec/api_spec.rb +44 -0
  51. data/spec/certification_spec.rb +62 -0
  52. data/spec/change_spec.rb +71 -0
  53. data/spec/collection_spec.rb +69 -0
  54. data/spec/company_spec.rb +50 -0
  55. data/spec/configuration_spec.rb +43 -0
  56. data/spec/credit_spec.rb +49 -0
  57. data/spec/discover_spec.rb +54 -0
  58. data/spec/find_spec.rb +105 -0
  59. data/spec/genre_spec.rb +75 -0
  60. data/spec/job_spec.rb +39 -0
  61. data/spec/keyword_spec.rb +52 -0
  62. data/spec/movie_spec.rb +362 -0
  63. data/spec/network_spec.rb +33 -0
  64. data/spec/person_spec.rb +201 -0
  65. data/spec/resource_spec.rb +47 -0
  66. data/spec/review_spec.rb +33 -0
  67. data/spec/search_spec.rb +161 -0
  68. data/spec/spec_helper.rb +37 -0
  69. data/spec/tv/episode_spec.rb +154 -0
  70. data/spec/tv/season_spec.rb +144 -0
  71. data/spec/tv_spec.rb +352 -0
  72. data/spec/vcr/certification/movie_list.yml +305 -0
  73. data/spec/vcr/certification/tv_list.yml +318 -0
  74. data/spec/vcr/change/movie.yml +58 -0
  75. data/spec/vcr/change/person.yml +58 -0
  76. data/spec/vcr/change/tv.yml +58 -0
  77. data/spec/vcr/collection/backdrops.yml +58 -0
  78. data/spec/vcr/collection/detail.yml +73 -0
  79. data/spec/vcr/collection/posters.yml +58 -0
  80. data/spec/vcr/company/detail.yml +56 -0
  81. data/spec/vcr/company/movies.yml +363 -0
  82. data/spec/vcr/configuration/get.yml +50 -0
  83. data/spec/vcr/credit/detail.yml +61 -0
  84. data/spec/vcr/discover/movie.yml +361 -0
  85. data/spec/vcr/discover/tv.yml +401 -0
  86. data/spec/vcr/find/movie.yml +64 -0
  87. data/spec/vcr/find/people.yml +114 -0
  88. data/spec/vcr/find/tv_episode.yml +66 -0
  89. data/spec/vcr/find/tv_season.yml +66 -0
  90. data/spec/vcr/find/tv_serie.yml +79 -0
  91. data/spec/vcr/genre/movie_list.yml +57 -0
  92. data/spec/vcr/genre/movies.yml +330 -0
  93. data/spec/vcr/genre/tv_list.yml +58 -0
  94. data/spec/vcr/job/list.yml +128 -0
  95. data/spec/vcr/keyword/detail.yml +56 -0
  96. data/spec/vcr/keyword/movies.yml +344 -0
  97. data/spec/vcr/movie/alternative_titles.yml +69 -0
  98. data/spec/vcr/movie/backdrops.yml +58 -0
  99. data/spec/vcr/movie/cast.yml +225 -0
  100. data/spec/vcr/movie/changes.yml +57 -0
  101. data/spec/vcr/movie/crew.yml +225 -0
  102. data/spec/vcr/movie/detail.yml +69 -0
  103. data/spec/vcr/movie/director.yml +225 -0
  104. data/spec/vcr/movie/keywords.yml +57 -0
  105. data/spec/vcr/movie/latest.yml +60 -0
  106. data/spec/vcr/movie/lists.yml +157 -0
  107. data/spec/vcr/movie/now_playing.yml +331 -0
  108. data/spec/vcr/movie/popular.yml +361 -0
  109. data/spec/vcr/movie/posters.yml +58 -0
  110. data/spec/vcr/movie/releases.yml +57 -0
  111. data/spec/vcr/movie/reviews.yml +56 -0
  112. data/spec/vcr/movie/similar.yml +354 -0
  113. data/spec/vcr/movie/top_rated.yml +343 -0
  114. data/spec/vcr/movie/translations.yml +96 -0
  115. data/spec/vcr/movie/upcoming.yml +313 -0
  116. data/spec/vcr/movie/videos.yml +57 -0
  117. data/spec/vcr/network/detail.yml +56 -0
  118. data/spec/vcr/person/changes.yml +61 -0
  119. data/spec/vcr/person/combined_credits.yml +317 -0
  120. data/spec/vcr/person/detail.yml +72 -0
  121. data/spec/vcr/person/external_ids.yml +56 -0
  122. data/spec/vcr/person/images.yml +56 -0
  123. data/spec/vcr/person/latest.yml +61 -0
  124. data/spec/vcr/person/movie_credits.yml +293 -0
  125. data/spec/vcr/person/popular.yml +1116 -0
  126. data/spec/vcr/person/tagged_images.yml +458 -0
  127. data/spec/vcr/person/tv_credits.yml +82 -0
  128. data/spec/vcr/resource/configuration_get.yml +50 -0
  129. data/spec/vcr/review/detail.yml +66 -0
  130. data/spec/vcr/search/collection.yml +58 -0
  131. data/spec/vcr/search/company.yml +70 -0
  132. data/spec/vcr/search/keyword.yml +61 -0
  133. data/spec/vcr/search/list.yml +70 -0
  134. data/spec/vcr/search/movie.yml +335 -0
  135. data/spec/vcr/search/multi.yml +219 -0
  136. data/spec/vcr/search/person.yml +117 -0
  137. data/spec/vcr/search/tv.yml +300 -0
  138. data/spec/vcr/tv/airing_today.yml +503 -0
  139. data/spec/vcr/tv/alternative_titles.yml +59 -0
  140. data/spec/vcr/tv/backdrops.yml +58 -0
  141. data/spec/vcr/tv/cast.yml +86 -0
  142. data/spec/vcr/tv/changes.yml +58 -0
  143. data/spec/vcr/tv/content_ratings.yml +56 -0
  144. data/spec/vcr/tv/crew.yml +86 -0
  145. data/spec/vcr/tv/detail.yml +71 -0
  146. data/spec/vcr/tv/episode/cast.yml +70 -0
  147. data/spec/vcr/tv/episode/changes.yml +66 -0
  148. data/spec/vcr/tv/episode/crew.yml +70 -0
  149. data/spec/vcr/tv/episode/detail.yml +68 -0
  150. data/spec/vcr/tv/episode/external_ids.yml +56 -0
  151. data/spec/vcr/tv/episode/guest_stars.yml +70 -0
  152. data/spec/vcr/tv/episode/posters.yml +58 -0
  153. data/spec/vcr/tv/episode/videos.yml +56 -0
  154. data/spec/vcr/tv/external_ids.yml +56 -0
  155. data/spec/vcr/tv/keywords.yml +59 -0
  156. data/spec/vcr/tv/latest.yml +97 -0
  157. data/spec/vcr/tv/on_the_air.yml +421 -0
  158. data/spec/vcr/tv/popular.yml +401 -0
  159. data/spec/vcr/tv/posters.yml +58 -0
  160. data/spec/vcr/tv/season/cast.yml +69 -0
  161. data/spec/vcr/tv/season/changes.yml +69 -0
  162. data/spec/vcr/tv/season/crew.yml +69 -0
  163. data/spec/vcr/tv/season/detail.yml +649 -0
  164. data/spec/vcr/tv/season/external_ids.yml +56 -0
  165. data/spec/vcr/tv/season/posters.yml +58 -0
  166. data/spec/vcr/tv/season/videos.yml +72 -0
  167. data/spec/vcr/tv/similar.yml +441 -0
  168. data/spec/vcr/tv/top_rated.yml +454 -0
  169. data/spec/vcr/tv/translations.yml +95 -0
  170. data/spec/vcr/tv/videos.yml +57 -0
  171. data/themoviedb-api.gemspec +30 -0
  172. metadata +433 -0
@@ -0,0 +1,54 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Discover 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::Discover }
18
+
19
+ it { is_expected.to respond_to(:movie) }
20
+ it { is_expected.to respond_to(:tv) }
21
+
22
+ context '#movie' do
23
+ let(:movie) do
24
+ VCR.use_cassette 'discover/movie' do
25
+ Tmdb::Discover.movie
26
+ end
27
+ end
28
+
29
+ subject { movie }
30
+
31
+ it { expect(subject).to be_an_instance_of(Tmdb::Discover) }
32
+
33
+ it 'should have results of kind Tmdb::Movie' do
34
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
35
+ end
36
+ end
37
+
38
+ context '#tv' do
39
+ let(:tv) do
40
+ VCR.use_cassette 'discover/tv' do
41
+ Tmdb::Discover.tv
42
+ end
43
+ end
44
+
45
+ subject { tv }
46
+
47
+ it { expect(subject).to be_an_instance_of(Tmdb::Discover) }
48
+
49
+ it 'should have results of kind Tmdb::TV' do
50
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
51
+ end
52
+ end
53
+
54
+ end
data/spec/find_spec.rb ADDED
@@ -0,0 +1,105 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Find 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::Find }
18
+
19
+ it { is_expected.to respond_to(:movie) }
20
+ it { is_expected.to respond_to(:people) }
21
+ it { is_expected.to respond_to(:tv_serie) }
22
+ it { is_expected.to respond_to(:tv_season) }
23
+ it { is_expected.to respond_to(:tv_episode) }
24
+
25
+ context '#movie' do
26
+ let(:movie) do
27
+ VCR.use_cassette 'find/movie' do
28
+ Tmdb::Find.movie('tt0266543', external_source: 'imdb_id')
29
+ end
30
+ end
31
+
32
+ subject { movie }
33
+
34
+ it 'should return an array of Tmdb::Movie' do
35
+ expect(subject).to be_an_instance_of(Array)
36
+ expect(subject.sample).to be_an_instance_of(Tmdb::Movie)
37
+ end
38
+ end
39
+
40
+ context '#people' do
41
+ let(:people) do
42
+ VCR.use_cassette 'find/people' do
43
+ Tmdb::Find.people('nm0298350', external_source: 'imdb_id')
44
+ end
45
+ end
46
+
47
+ subject { people }
48
+
49
+ it 'should return an array of Tmdb::Person' do
50
+ expect(subject).to be_an_instance_of(Array)
51
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
52
+ end
53
+
54
+ it 'Tmdb::Person should contain known_for field with misc objects' do
55
+ expect(subject.first.known_for).to be_an_instance_of(Array)
56
+ expect(subject.first.known_for.first).to be_an_instance_of(Tmdb::TV)
57
+ end
58
+ end
59
+
60
+ context '#tv_serie' do
61
+ let(:tv_serie) do
62
+ VCR.use_cassette 'find/tv_serie' do
63
+ Tmdb::Find.tv_serie('tt3749900', external_source: 'imdb_id')
64
+ end
65
+ end
66
+
67
+ subject { tv_serie }
68
+
69
+ it 'should return an array of Tmdb::TV' do
70
+ expect(subject).to be_an_instance_of(Array)
71
+ expect(subject.sample).to be_an_instance_of(Tmdb::TV)
72
+ end
73
+ end
74
+
75
+ context '#tv_season' do
76
+ let(:tv_season) do
77
+ VCR.use_cassette 'find/tv_season' do
78
+ Tmdb::Find.tv_season('121361', external_source: 'tvdb_id')
79
+ end
80
+ end
81
+
82
+ subject { tv_season }
83
+
84
+ it 'should return an array of Tmdb::TV' do
85
+ expect(subject).to be_an_instance_of(Array)
86
+ expect(subject.sample).to be_an_instance_of(Tmdb::TV)
87
+ end
88
+ end
89
+
90
+ context '#tv_episode' do
91
+ let(:tv_episode) do
92
+ VCR.use_cassette 'find/tv_episode' do
93
+ Tmdb::Find.tv_episode('121361', external_source: 'tvdb_id')
94
+ end
95
+ end
96
+
97
+ subject { tv_episode }
98
+
99
+ it 'should return an array of Tmdb::TV' do
100
+ expect(subject).to be_an_instance_of(Array)
101
+ expect(subject.sample).to be_an_instance_of(Tmdb::TV)
102
+ end
103
+ end
104
+
105
+ end
@@ -0,0 +1,75 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Genre 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::Genre }
18
+
19
+ it { is_expected.to respond_to(:movie_list) }
20
+ it { is_expected.to respond_to(:tv_list) }
21
+ it { is_expected.to respond_to(:movies) }
22
+
23
+ context '#movie_list' do
24
+ let(:movie_list) do
25
+ VCR.use_cassette 'genre/movie_list' do
26
+ Tmdb::Genre.movie_list
27
+ end
28
+ end
29
+
30
+ subject { movie_list }
31
+
32
+ it 'should be an Array' do
33
+ expect(subject).to be_an_instance_of(Array)
34
+ end
35
+
36
+ it 'should contain many Tmdb::Genre' do
37
+ expect(subject.sample).to be_an_instance_of(Tmdb::Genre)
38
+ end
39
+ end
40
+
41
+ context '#tv_list' do
42
+ let(:tv_list) do
43
+ VCR.use_cassette 'genre/tv_list' do
44
+ Tmdb::Genre.tv_list
45
+ end
46
+ end
47
+
48
+ subject { tv_list }
49
+
50
+ it 'should be an Array' do
51
+ expect(subject).to be_an_instance_of(Array)
52
+ end
53
+
54
+ it 'should contain many Tmdb::Genre' do
55
+ expect(subject.sample).to be_an_instance_of(Tmdb::Genre)
56
+ end
57
+ end
58
+
59
+ context '#movies' do
60
+ let(:movies) do
61
+ VCR.use_cassette 'genre/movies' do
62
+ Tmdb::Genre.movies(18)
63
+ end
64
+ end
65
+
66
+ subject { movies }
67
+
68
+ it { expect(subject).to be_an_instance_of(Tmdb::Genre) }
69
+
70
+ it 'should have results of kind Tmdb::Movie' do
71
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
72
+ end
73
+ end
74
+
75
+ end
data/spec/job_spec.rb ADDED
@@ -0,0 +1,39 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Job 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::Job }
18
+
19
+ it { is_expected.to respond_to(:list) }
20
+
21
+ context '#list' do
22
+ let(:list) do
23
+ VCR.use_cassette 'job/list' do
24
+ Tmdb::Job.list
25
+ end
26
+ end
27
+
28
+ subject { list }
29
+
30
+ it 'should be an Array' do
31
+ expect(subject).to be_an_instance_of(Array)
32
+ end
33
+
34
+ it 'should contain many Tmdb::Job' do
35
+ expect(subject.sample).to be_an_instance_of(Tmdb::Job)
36
+ end
37
+ end
38
+
39
+ end
@@ -0,0 +1,52 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Keyword 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::Keyword }
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 'keyword/detail' do
25
+ Tmdb::Keyword.detail(1721)
26
+ end
27
+ end
28
+
29
+ subject { detail }
30
+
31
+ it 'should generate a Tmdb::Keyword object' do
32
+ expect(subject).to be_an_instance_of(Tmdb::Keyword)
33
+ end
34
+ end
35
+
36
+ context '#movies' do
37
+ let(:keyword_movies) do
38
+ VCR.use_cassette 'keyword/movies' do
39
+ Tmdb::Keyword.movies(1721)
40
+ end
41
+ end
42
+
43
+ subject { keyword_movies }
44
+
45
+ it { expect(subject).to be_an_instance_of(Tmdb::Keyword) }
46
+
47
+ it 'should have results of kind Tmdb::Movie' do
48
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
49
+ end
50
+ end
51
+
52
+ end
@@ -0,0 +1,362 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Movie 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::Movie }
18
+
19
+ it { is_expected.to respond_to(:detail) }
20
+ it { is_expected.to respond_to(:alternative_titles) }
21
+ it { is_expected.to respond_to(:cast) }
22
+ it { is_expected.to respond_to(:crew) }
23
+ it { is_expected.to respond_to(:director) }
24
+ it { is_expected.to respond_to(:backdrops) }
25
+ it { is_expected.to respond_to(:posters) }
26
+ it { is_expected.to respond_to(:videos) }
27
+ it { is_expected.to respond_to(:keywords) }
28
+ it { is_expected.to respond_to(:releases) }
29
+ it { is_expected.to respond_to(:translations) }
30
+ it { is_expected.to respond_to(:similar) }
31
+ it { is_expected.to respond_to(:reviews) }
32
+ it { is_expected.to respond_to(:lists) }
33
+ it { is_expected.to respond_to(:changes) }
34
+ it { is_expected.to respond_to(:latest) }
35
+ it { is_expected.to respond_to(:upcoming) }
36
+ it { is_expected.to respond_to(:now_playing) }
37
+ it { is_expected.to respond_to(:popular) }
38
+ it { is_expected.to respond_to(:top_rated) }
39
+
40
+ context '#detail' do
41
+ let(:detail) do
42
+ VCR.use_cassette 'movie/detail' do
43
+ Tmdb::Movie.detail(550)
44
+ end
45
+ end
46
+
47
+ subject { detail }
48
+
49
+ it { expect(subject).to be_an_instance_of(Tmdb::Movie) }
50
+
51
+ it 'Tmdb::Movie should contain genres field with Tmdb::Genre objects' do
52
+ expect(subject.genres).to be_an_instance_of(Array)
53
+ expect(subject.genres.first).to be_an_instance_of(Tmdb::Genre)
54
+ end
55
+
56
+ it 'Tmdb::Movie should contain production_companies field with Tmdb::Company objects' do
57
+ expect(subject.production_companies).to be_an_instance_of(Array)
58
+ expect(subject.production_companies.first).to be_an_instance_of(Tmdb::Company)
59
+ end
60
+
61
+ it 'Tmdb::Movie should contain production_countries field with Tmdb::Country objects' do
62
+ expect(subject.production_countries).to be_an_instance_of(Array)
63
+ expect(subject.production_countries.first).to be_an_instance_of(Tmdb::Country)
64
+ end
65
+
66
+ it 'Tmdb::Movie should contain spoken_languages field with Tmdb::Language objects' do
67
+ expect(subject.spoken_languages).to be_an_instance_of(Array)
68
+ expect(subject.spoken_languages.first).to be_an_instance_of(Tmdb::Language)
69
+ end
70
+ end
71
+
72
+ context '#alternative_titles' do
73
+ let(:alternative_titles) do
74
+ VCR.use_cassette 'movie/alternative_titles' do
75
+ Tmdb::Movie.alternative_titles(550)
76
+ end
77
+ end
78
+
79
+ subject { alternative_titles }
80
+
81
+ it 'should return an array of Tmdb::Movie' do
82
+ expect(subject).to be_an_instance_of(Array)
83
+ expect(subject.sample).to be_an_instance_of(Tmdb::Movie)
84
+ end
85
+ end
86
+
87
+ context '#cast' do
88
+ let(:cast) do
89
+ VCR.use_cassette 'movie/cast' do
90
+ Tmdb::Movie.cast(550)
91
+ end
92
+ end
93
+
94
+ subject { cast }
95
+
96
+ it 'should return an array of Tmdb::Person' do
97
+ expect(subject).to be_an_instance_of(Array)
98
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
99
+ end
100
+ end
101
+
102
+ context '#crew' do
103
+ let(:crew) do
104
+ VCR.use_cassette 'movie/crew' do
105
+ Tmdb::Movie.crew(550)
106
+ end
107
+ end
108
+
109
+ subject { crew }
110
+
111
+ it 'should return an array of Tmdb::Person' do
112
+ expect(subject).to be_an_instance_of(Array)
113
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
114
+ end
115
+ end
116
+
117
+ context '#director' do
118
+ let(:director) do
119
+ VCR.use_cassette 'movie/director' do
120
+ Tmdb::Movie.director(550)
121
+ end
122
+ end
123
+
124
+ subject { director }
125
+
126
+ it 'should return an array of Tmdb::Person' do
127
+ expect(subject).to be_an_instance_of(Array)
128
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
129
+ end
130
+ end
131
+
132
+ context '#backdrops' do
133
+ let(:backdrops) do
134
+ VCR.use_cassette 'movie/backdrops' do
135
+ Tmdb::Movie.backdrops(550)
136
+ end
137
+ end
138
+
139
+ subject { backdrops }
140
+
141
+ it 'should return an array of Tmdb::Backdrop' do
142
+ expect(subject).to be_an_instance_of(Array)
143
+ expect(subject.sample).to be_an_instance_of(Tmdb::Backdrop)
144
+ end
145
+ end
146
+
147
+ context '#posters' do
148
+ let(:posters) do
149
+ VCR.use_cassette 'movie/posters' do
150
+ Tmdb::Movie.posters(550)
151
+ end
152
+ end
153
+
154
+ subject { posters }
155
+
156
+ it 'should return an array of Tmdb::Poster' do
157
+ expect(subject).to be_an_instance_of(Array)
158
+ expect(subject.sample).to be_an_instance_of(Tmdb::Poster)
159
+ end
160
+ end
161
+
162
+ context '#videos' do
163
+ let(:videos) do
164
+ VCR.use_cassette 'movie/videos' do
165
+ Tmdb::Movie.videos(550)
166
+ end
167
+ end
168
+
169
+ subject { videos }
170
+
171
+ it 'should return an array of Tmdb::Video' do
172
+ expect(subject).to be_an_instance_of(Array)
173
+ expect(subject.sample).to be_an_instance_of(Tmdb::Video)
174
+ end
175
+ end
176
+
177
+ context '#keywords' do
178
+ let(:keywords) do
179
+ VCR.use_cassette 'movie/keywords' do
180
+ Tmdb::Movie.keywords(550)
181
+ end
182
+ end
183
+
184
+ subject { keywords }
185
+
186
+ it 'should return an array of Tmdb::Keyword' do
187
+ expect(subject).to be_an_instance_of(Array)
188
+ expect(subject.sample).to be_an_instance_of(Tmdb::Keyword)
189
+ end
190
+ end
191
+
192
+ context '#releases' do
193
+ let(:releases) do
194
+ VCR.use_cassette 'movie/releases' do
195
+ Tmdb::Movie.releases(550)
196
+ end
197
+ end
198
+
199
+ subject { releases }
200
+
201
+ it 'should return an array of Tmdb::Release' do
202
+ expect(subject).to be_an_instance_of(Array)
203
+ expect(subject.sample).to be_an_instance_of(Tmdb::Release)
204
+ end
205
+ end
206
+
207
+ context '#translations' do
208
+ let(:translations) do
209
+ VCR.use_cassette 'movie/translations' do
210
+ Tmdb::Movie.translations(550)
211
+ end
212
+ end
213
+
214
+ subject { translations }
215
+
216
+ it 'should return an array of Tmdb::Translation' do
217
+ expect(subject).to be_an_instance_of(Array)
218
+ expect(subject.sample).to be_an_instance_of(Tmdb::Translation)
219
+ end
220
+ end
221
+
222
+ context '#similar' do
223
+ let(:similar) do
224
+ VCR.use_cassette 'movie/similar' do
225
+ Tmdb::Movie.similar(550)
226
+ end
227
+ end
228
+
229
+ subject { similar }
230
+
231
+ it { expect(subject).to be_an_instance_of(Tmdb::Movie) }
232
+
233
+ it 'should have results of kind Tmdb::Movie' do
234
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
235
+ end
236
+ end
237
+
238
+ context '#reviews' do
239
+ let(:reviews) do
240
+ VCR.use_cassette 'movie/reviews' do
241
+ Tmdb::Movie.reviews(550)
242
+ end
243
+ end
244
+
245
+ subject { reviews }
246
+
247
+ it { expect(subject).to be_an_instance_of(Tmdb::Review) }
248
+ end
249
+
250
+ context '#lists' do
251
+ let(:lists) do
252
+ VCR.use_cassette 'movie/lists' do
253
+ Tmdb::Movie.lists(550)
254
+ end
255
+ end
256
+
257
+ subject { lists }
258
+
259
+ it { expect(subject).to be_an_instance_of(Tmdb::List) }
260
+
261
+ it 'should have results of kind Tmdb::List' do
262
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::List)
263
+ end
264
+ end
265
+
266
+ context '#changes' do
267
+ let(:changes) do
268
+ VCR.use_cassette 'movie/changes' do
269
+ Tmdb::Movie.changes(550, start_date: '2015-06-20', end_date: '2015-06-26')
270
+ end
271
+ end
272
+
273
+ subject { changes }
274
+
275
+ it 'should have changes of kind Tmdb::Change' do
276
+ expect(subject.sample).to be_an_instance_of(Tmdb::Change)
277
+ end
278
+
279
+ it 'changes should contain items of kind Tmdb::ChangeItem' do
280
+ expect(subject.first.items.first).to be_an_instance_of(Tmdb::ChangeItem)
281
+ end
282
+ end
283
+
284
+ context '#latest' do
285
+ let(:latest) do
286
+ VCR.use_cassette 'movie/latest' do
287
+ Tmdb::Movie.latest
288
+ end
289
+ end
290
+
291
+ subject { latest }
292
+
293
+ it 'should return an Tmdb::Movie object' do
294
+ expect(subject).to be_an_instance_of(Tmdb::Movie)
295
+ end
296
+ end
297
+
298
+ context '#upcoming' do
299
+ let(:upcoming) do
300
+ VCR.use_cassette 'movie/upcoming' do
301
+ Tmdb::Movie.upcoming
302
+ end
303
+ end
304
+
305
+ subject { upcoming }
306
+
307
+ it { expect(subject).to be_an_instance_of(Tmdb::Movie) }
308
+
309
+ it 'should have results of kind Tmdb::Movie' do
310
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
311
+ end
312
+ end
313
+
314
+ context '#now_playing' do
315
+ let(:now_playing) do
316
+ VCR.use_cassette 'movie/now_playing' do
317
+ Tmdb::Movie.now_playing
318
+ end
319
+ end
320
+
321
+ subject { now_playing }
322
+
323
+ it { expect(subject).to be_an_instance_of(Tmdb::Movie) }
324
+
325
+ it 'should have results of kind Tmdb::Movie' do
326
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
327
+ end
328
+ end
329
+
330
+ context '#popular' do
331
+ let(:popular) do
332
+ VCR.use_cassette 'movie/popular' do
333
+ Tmdb::Movie.popular
334
+ end
335
+ end
336
+
337
+ subject { popular }
338
+
339
+ it { expect(subject).to be_an_instance_of(Tmdb::Movie) }
340
+
341
+ it 'should have results of kind Tmdb::Movie' do
342
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
343
+ end
344
+ end
345
+
346
+ context '#top_rated' do
347
+ let(:top_rated) do
348
+ VCR.use_cassette 'movie/top_rated' do
349
+ Tmdb::Movie.top_rated
350
+ end
351
+ end
352
+
353
+ subject { top_rated }
354
+
355
+ it { expect(subject).to be_an_instance_of(Tmdb::Movie) }
356
+
357
+ it 'should have results of kind Tmdb::Movie' do
358
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
359
+ end
360
+ end
361
+
362
+ end