themoviedb-api 0.7.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 (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