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,33 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Network 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::Network }
18
+
19
+ it { is_expected.to respond_to(:detail) }
20
+
21
+ context '#detail' do
22
+ let(:detail) do
23
+ VCR.use_cassette 'network/detail' do
24
+ Tmdb::Network.detail(1)
25
+ end
26
+ end
27
+
28
+ subject { detail }
29
+
30
+ it { expect(subject).to be_an_instance_of(Tmdb::Network) }
31
+ end
32
+
33
+ end
@@ -0,0 +1,201 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Person 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::Person }
18
+
19
+ it { is_expected.to respond_to(:detail) }
20
+ it { is_expected.to respond_to(:movie_credits) }
21
+ it { is_expected.to respond_to(:tv_credits) }
22
+ it { is_expected.to respond_to(:combined_credits) }
23
+ it { is_expected.to respond_to(:external_ids) }
24
+ it { is_expected.to respond_to(:images) }
25
+ it { is_expected.to respond_to(:tagged_images) }
26
+ it { is_expected.to respond_to(:changes) }
27
+ it { is_expected.to respond_to(:popular) }
28
+ it { is_expected.to respond_to(:latest) }
29
+
30
+ context '#detail' do
31
+ let(:detail) do
32
+ VCR.use_cassette 'person/detail' do
33
+ Tmdb::Person.detail(1)
34
+ end
35
+ end
36
+
37
+ subject { detail }
38
+
39
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
40
+ end
41
+
42
+ context '#movie_credits' do
43
+ let(:movie_credits) do
44
+ VCR.use_cassette 'person/movie_credits' do
45
+ Tmdb::Person.movie_credits(1)
46
+ end
47
+ end
48
+
49
+ subject { movie_credits }
50
+
51
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
52
+
53
+ it 'should have cast of kind Tmdb::Person' do
54
+ expect(subject.cast.sample).to be_an_instance_of(Tmdb::Person)
55
+ end
56
+
57
+ it 'should have crew of kind Tmdb::Person' do
58
+ expect(subject.crew.sample).to be_an_instance_of(Tmdb::Person)
59
+ end
60
+ end
61
+
62
+ context '#tv_credits' do
63
+ let(:tv_credits) do
64
+ VCR.use_cassette 'person/tv_credits' do
65
+ Tmdb::Person.tv_credits(1)
66
+ end
67
+ end
68
+
69
+ subject { tv_credits }
70
+
71
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
72
+
73
+ it 'should have cast of kind Tmdb::Person' do
74
+ expect(subject.cast.sample).to be_an_instance_of(Tmdb::Person)
75
+ end
76
+
77
+ it 'should have crew of kind Tmdb::Person' do
78
+ expect(subject.crew.sample).to be_an_instance_of(Tmdb::Person)
79
+ end
80
+ end
81
+
82
+ context '#combined_credits' do
83
+ let(:combined_credits) do
84
+ VCR.use_cassette 'person/combined_credits' do
85
+ Tmdb::Person.combined_credits(1)
86
+ end
87
+ end
88
+
89
+ subject { combined_credits }
90
+
91
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
92
+
93
+ it 'should have cast of kind Tmdb::Person' do
94
+ expect(subject.cast.sample).to be_an_instance_of(Tmdb::Person)
95
+ end
96
+
97
+ it 'should have crew of kind Tmdb::Person' do
98
+ expect(subject.crew.sample).to be_an_instance_of(Tmdb::Person)
99
+ end
100
+ end
101
+
102
+ context '#external_ids' do
103
+ let(:external_ids) do
104
+ VCR.use_cassette 'person/external_ids' do
105
+ Tmdb::Person.external_ids(1)
106
+ end
107
+ end
108
+
109
+ subject { external_ids }
110
+
111
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
112
+ end
113
+
114
+ context '#images' do
115
+ let(:images) do
116
+ VCR.use_cassette 'person/images' do
117
+ Tmdb::Person.images(1)
118
+ end
119
+ end
120
+
121
+ subject { images }
122
+
123
+ it { expect(subject).to be_an_instance_of(Tmdb::Image) }
124
+
125
+ it 'should have profiles of kind Tmdb::Image' do
126
+ expect(subject.profiles.sample).to be_an_instance_of(Tmdb::Image)
127
+ end
128
+ end
129
+
130
+ context '#tagged_images' do
131
+ let(:tagged_images) do
132
+ VCR.use_cassette 'person/tagged_images' do
133
+ Tmdb::Person.tagged_images(287)
134
+ end
135
+ end
136
+
137
+ subject { tagged_images }
138
+
139
+ it { expect(subject).to be_an_instance_of(Tmdb::Image) }
140
+
141
+ it 'should have results of kind Tmdb::Image' do
142
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Image)
143
+ end
144
+
145
+ it 'Tmdb::Image result should contain media field with misc objects' do
146
+ expect(subject.results.first.media).to be_an_instance_of(Tmdb::Movie)
147
+ end
148
+ end
149
+
150
+ context '#changes' do
151
+ let(:changes) do
152
+ VCR.use_cassette 'person/changes' do
153
+ Tmdb::Person.changes(1, start_date: '2014-02-19', end_date: '2014-03-01')
154
+ end
155
+ end
156
+
157
+ subject { changes }
158
+
159
+ it 'should have changes of kind Tmdb::Change' do
160
+ expect(subject.sample).to be_an_instance_of(Tmdb::Change)
161
+ end
162
+
163
+ it 'changes should contain items of kind Tmdb::ChangeItem' do
164
+ expect(subject.first.items.first).to be_an_instance_of(Tmdb::ChangeItem)
165
+ end
166
+ end
167
+
168
+ context '#popular' do
169
+ let(:popular) do
170
+ VCR.use_cassette 'person/popular' do
171
+ Tmdb::Person.popular
172
+ end
173
+ end
174
+
175
+ subject { popular }
176
+
177
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
178
+
179
+ it 'should have results of kind Tmdb::Person' do
180
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Person)
181
+ end
182
+
183
+ it 'Tmdb::Person should contain known_for field with misc objects' do
184
+ expect(subject.results.first.known_for).to be_an_instance_of(Array)
185
+ expect(subject.results.first.known_for.first).to be_an_instance_of(Tmdb::Movie)
186
+ end
187
+ end
188
+
189
+ context '#latest' do
190
+ let(:latest) do
191
+ VCR.use_cassette 'person/latest' do
192
+ Tmdb::Person.latest
193
+ end
194
+ end
195
+
196
+ subject { latest }
197
+
198
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
199
+ end
200
+
201
+ end
@@ -0,0 +1,47 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+
4
+ describe Tmdb::Resource do
5
+
6
+ before(:all) do
7
+ Tmdb::Api.key(TmdbDefaultApiKey)
8
+ Tmdb::Api.language(TmdbDefaultLanguage)
9
+ end
10
+
11
+ after(:all) do
12
+ Tmdb::Api.key(nil)
13
+ Tmdb::Api.language(nil)
14
+ end
15
+
16
+ let(:resource) { Tmdb::Resource.new('/configuration', {}) }
17
+ let(:configuration_resource) {
18
+ VCR.use_cassette 'resource/configuration_get' do
19
+ subject.get
20
+ end
21
+ }
22
+
23
+ subject { resource }
24
+
25
+ it { is_expected.to respond_to(:get) }
26
+
27
+ context 'attribute readers' do
28
+ it 'param should be an Hash' do
29
+ expect(subject.params).to be_an_instance_of(Hash)
30
+ end
31
+
32
+ it 'query_url should be a String' do
33
+ expect(subject.query_url).to be_an_instance_of(String)
34
+ end
35
+
36
+ it 'query_url should be equal to "/configuration"' do
37
+ expect(subject.query_url).to eq('/configuration')
38
+ end
39
+ end
40
+
41
+ context 'object methods' do
42
+ it 'expect #get method to return a hash' do
43
+ expect(configuration_resource).to be_an_instance_of(Hash)
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1,33 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Network 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::Network }
18
+
19
+ it { is_expected.to respond_to(:detail) }
20
+
21
+ context '#detail' do
22
+ let(:detail) do
23
+ VCR.use_cassette 'review/detail' do
24
+ Tmdb::Review.detail('5013bc76760ee372cb00253e')
25
+ end
26
+ end
27
+
28
+ subject { detail }
29
+
30
+ it { expect(subject).to be_an_instance_of(Tmdb::Review) }
31
+ end
32
+
33
+ end
@@ -0,0 +1,161 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Search 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::Search }
18
+
19
+ it { is_expected.to respond_to(:company) }
20
+ it { is_expected.to respond_to(:collection) }
21
+ it { is_expected.to respond_to(:keyword) }
22
+ it { is_expected.to respond_to(:list) }
23
+ it { is_expected.to respond_to(:movie) }
24
+ it { is_expected.to respond_to(:multi) }
25
+ it { is_expected.to respond_to(:person) }
26
+ it { is_expected.to respond_to(:tv) }
27
+
28
+ context '#company' do
29
+ let(:company) do
30
+ VCR.use_cassette 'search/company' do
31
+ Tmdb::Search.company('Disney')
32
+ end
33
+ end
34
+
35
+ subject { company }
36
+
37
+ it { expect(subject).to be_an_instance_of(Tmdb::Company) }
38
+
39
+ it 'should have results of kind Tmdb::Company' do
40
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Company)
41
+ end
42
+ end
43
+
44
+ context '#collection' do
45
+ let(:collection) do
46
+ VCR.use_cassette 'search/collection' do
47
+ Tmdb::Search.collection('Disney')
48
+ end
49
+ end
50
+
51
+ subject { collection }
52
+
53
+ it { expect(subject).to be_an_instance_of(Tmdb::Collection) }
54
+
55
+ it 'should have results of kind Tmdb::Collection' do
56
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Collection)
57
+ end
58
+ end
59
+
60
+ context '#keyword' do
61
+ let(:keyword) do
62
+ VCR.use_cassette 'search/keyword' do
63
+ Tmdb::Search.keyword('Disney')
64
+ end
65
+ end
66
+
67
+ subject { keyword }
68
+
69
+ it { expect(subject).to be_an_instance_of(Tmdb::Keyword) }
70
+
71
+ it 'should have results of kind Tmdb::Keyword' do
72
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Keyword)
73
+ end
74
+ end
75
+
76
+ context '#list' do
77
+ let(:list) do
78
+ VCR.use_cassette 'search/list' do
79
+ Tmdb::Search.list('Disney')
80
+ end
81
+ end
82
+
83
+ subject { list }
84
+
85
+ it { expect(subject).to be_an_instance_of(Tmdb::List) }
86
+
87
+ it 'should have results of kind Tmdb::List' do
88
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::List)
89
+ end
90
+ end
91
+
92
+ context '#movie' do
93
+ let(:movie) do
94
+ VCR.use_cassette 'search/movie' do
95
+ Tmdb::Search.movie('Disney')
96
+ end
97
+ end
98
+
99
+ subject { movie }
100
+
101
+ it { expect(subject).to be_an_instance_of(Tmdb::Movie) }
102
+
103
+ it 'should have results of kind Tmdb::Movie' do
104
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Movie)
105
+ end
106
+ end
107
+
108
+ context '#multi' do
109
+ let(:multi) do
110
+ VCR.use_cassette 'search/multi' do
111
+ Tmdb::Search.multi('Disney')
112
+ end
113
+ end
114
+
115
+ subject { multi }
116
+
117
+ it { expect(subject).to be_an_instance_of(Tmdb::Multi) }
118
+
119
+ it 'should have results of kind Tmdb::Multi' do
120
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Multi)
121
+ end
122
+ end
123
+
124
+ context '#person' do
125
+ let(:person) do
126
+ VCR.use_cassette 'search/person' do
127
+ Tmdb::Search.person('Angelina Jolie')
128
+ end
129
+ end
130
+
131
+ subject { person }
132
+
133
+ it { expect(subject).to be_an_instance_of(Tmdb::Person) }
134
+
135
+ it 'should have results of kind Tmdb::Person' do
136
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::Person)
137
+ end
138
+
139
+ it 'Tmdb::Person should contain known_for field with misc objects' do
140
+ expect(subject.results.first.known_for).to be_an_instance_of(Array)
141
+ expect(subject.results.first.known_for.first).to be_an_instance_of(Tmdb::Movie)
142
+ end
143
+ end
144
+
145
+ context '#tv' do
146
+ let(:tv) do
147
+ VCR.use_cassette 'search/tv' do
148
+ Tmdb::Search.tv('Disney')
149
+ end
150
+ end
151
+
152
+ subject { tv }
153
+
154
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
155
+
156
+ it 'should have results of kind Tmdb::TV' do
157
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
158
+ end
159
+ end
160
+
161
+ end