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,37 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+
8
+ require_relative '../lib/tmdb.rb'
9
+ require 'webmock/rspec'
10
+ require 'vcr'
11
+
12
+ VCR.configure do |c|
13
+ #the directory where your cassettes will be saved
14
+ c.cassette_library_dir = 'spec/vcr'
15
+ # your HTTP request service. You can also use fakeweb, webmock, and more
16
+ c.hook_into :webmock
17
+ end
18
+
19
+ RSpec.configure do |config|
20
+ config.run_all_when_everything_filtered = true
21
+
22
+ config.expect_with :rspec do |c|
23
+ c.syntax = :expect
24
+ end
25
+
26
+ config.before(:each, delete_api_key: true) do
27
+ Tmdb::Api.key(nil)
28
+ end
29
+
30
+ config.after(:each, delete_api_key: true) do
31
+ Tmdb::Api.key(TmdbDefaultApiKey)
32
+ end
33
+ end
34
+
35
+ # Defaults for tests
36
+ TmdbDefaultApiKey = 'c29379565234e20d7cbf4f2e835c3e41'
37
+ TmdbDefaultLanguage = 'en'
@@ -0,0 +1,154 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Tv::Episode 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::Tv::Episode }
18
+
19
+ it { is_expected.to respond_to(:detail) }
20
+ it { is_expected.to respond_to(:changes) }
21
+ it { is_expected.to respond_to(:cast) }
22
+ it { is_expected.to respond_to(:crew) }
23
+ it { is_expected.to respond_to(:guest_stars) }
24
+ it { is_expected.to respond_to(:external_ids) }
25
+ it { is_expected.to respond_to(:posters) }
26
+ it { is_expected.to respond_to(:videos) }
27
+
28
+ context '#detail' do
29
+ let(:detail) do
30
+ VCR.use_cassette 'tv/episode/detail' do
31
+ Tmdb::Tv::Episode.detail(3572, 1, 1)
32
+ end
33
+ end
34
+
35
+ subject { detail }
36
+
37
+ it { expect(subject).to be_an_instance_of(Tmdb::Tv::Episode) }
38
+
39
+ it 'Tmdb::Tv::Episode should contain crew field with Tmdb::Person objects' do
40
+ expect(subject.crew).to be_an_instance_of(Array)
41
+ expect(subject.crew.first).to be_an_instance_of(Tmdb::Person)
42
+ end
43
+
44
+ it 'Tmdb::Tv::Episode should contain guest_stars field with Tmdb::Person objects' do
45
+ expect(subject.guest_stars).to be_an_instance_of(Array)
46
+ expect(subject.guest_stars.first).to be_an_instance_of(Tmdb::Person)
47
+ end
48
+ end
49
+
50
+ context '#changes' do
51
+ let(:changes) do
52
+ VCR.use_cassette 'tv/episode/changes' do
53
+ Tmdb::Tv::Episode.changes(63065, start_date: '2015-06-15', end_date: '2015-06-20')
54
+ end
55
+ end
56
+
57
+ subject { changes }
58
+
59
+ it 'should have changes of kind Tmdb::Change' do
60
+ expect(subject.sample).to be_an_instance_of(Tmdb::Change)
61
+ end
62
+
63
+ it 'changes should contain items of kind Tmdb::ChangeItem' do
64
+ expect(subject.first.items.first).to be_an_instance_of(Tmdb::ChangeItem)
65
+ end
66
+ end
67
+
68
+ context '#cast' do
69
+ let(:cast) do
70
+ VCR.use_cassette 'tv/episode/cast' do
71
+ Tmdb::Tv::Episode.cast(3572, 1, 1)
72
+ end
73
+ end
74
+
75
+ subject { cast }
76
+
77
+ it 'should return an array of Tmdb::Person' do
78
+ expect(subject).to be_an_instance_of(Array)
79
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
80
+ end
81
+ end
82
+
83
+ context '#crew' do
84
+ let(:crew) do
85
+ VCR.use_cassette 'tv/episode/crew' do
86
+ Tmdb::Tv::Episode.crew(3572, 1, 1)
87
+ end
88
+ end
89
+
90
+ subject { crew }
91
+
92
+ it 'should return an array of Tmdb::Person' do
93
+ expect(subject).to be_an_instance_of(Array)
94
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
95
+ end
96
+ end
97
+
98
+ context '#guest_stars' do
99
+ let(:guest_stars) do
100
+ VCR.use_cassette 'tv/episode/guest_stars' do
101
+ Tmdb::Tv::Episode.guest_stars(3572, 1, 1)
102
+ end
103
+ end
104
+
105
+ subject { guest_stars }
106
+
107
+ it 'should return an array of Tmdb::Person' do
108
+ expect(subject).to be_an_instance_of(Array)
109
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
110
+ end
111
+ end
112
+
113
+ context '#external_ids' do
114
+ let(:external_ids) do
115
+ VCR.use_cassette 'tv/episode/external_ids' do
116
+ Tmdb::Tv::Episode.external_ids(3572, 1, 1)
117
+ end
118
+ end
119
+
120
+ subject { external_ids }
121
+
122
+ it { expect(subject).to be_an_instance_of(Tmdb::Tv::Episode) }
123
+ end
124
+
125
+ context '#posters' do
126
+ let(:posters) do
127
+ VCR.use_cassette 'tv/episode/posters' do
128
+ Tmdb::Tv::Episode.posters(1399, 1, 1)
129
+ end
130
+ end
131
+
132
+ subject { posters }
133
+
134
+ it 'should return an array of Tmdb::Poster' do
135
+ expect(subject).to be_an_instance_of(Array)
136
+ expect(subject.sample).to be_an_instance_of(Tmdb::Poster)
137
+ end
138
+ end
139
+
140
+ context '#videos' do
141
+ let(:videos) do
142
+ VCR.use_cassette 'tv/episode/videos' do
143
+ Tmdb::Tv::Episode.videos(1399, 1, 1)
144
+ end
145
+ end
146
+
147
+ subject { videos }
148
+
149
+ it 'should return an array' do
150
+ expect(subject).to be_an_instance_of(Array)
151
+ end
152
+ end
153
+
154
+ end
@@ -0,0 +1,144 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::Tv::Season 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::Tv::Season }
18
+
19
+ it { is_expected.to respond_to(:detail) }
20
+ it { is_expected.to respond_to(:changes) }
21
+ it { is_expected.to respond_to(:cast) }
22
+ it { is_expected.to respond_to(:crew) }
23
+ it { is_expected.to respond_to(:external_ids) }
24
+ it { is_expected.to respond_to(:posters) }
25
+ it { is_expected.to respond_to(:videos) }
26
+
27
+ context '#detail' do
28
+ let(:detail) do
29
+ VCR.use_cassette 'tv/season/detail' do
30
+ Tmdb::Tv::Season.detail(3572, 1)
31
+ end
32
+ end
33
+
34
+ subject { detail }
35
+
36
+ it { expect(subject).to be_an_instance_of(Tmdb::Tv::Season) }
37
+
38
+ it 'Tmdb::Tv::Season should contain episodes field with Tmdb::Tv::Episode objects' do
39
+ expect(subject.episodes).to be_an_instance_of(Array)
40
+ expect(subject.episodes.first).to be_an_instance_of(Tmdb::Tv::Episode)
41
+ end
42
+
43
+ it 'Tmdb::Tv::Episode should have crew field with Tmdb::Person objects' do
44
+ expect(subject.episodes.first.crew).to be_an_instance_of(Array)
45
+ expect(subject.episodes.first.crew.first).to be_an_instance_of(Tmdb::Person)
46
+ end
47
+
48
+ it 'Tmdb::Tv::Episode should have guest_stars field with Tmdb::Person objects' do
49
+ expect(subject.episodes.first.guest_stars).to be_an_instance_of(Array)
50
+ expect(subject.episodes.first.guest_stars.first).to be_an_instance_of(Tmdb::Person)
51
+ end
52
+ end
53
+
54
+ context '#changes' do
55
+ let(:changes) do
56
+ VCR.use_cassette 'tv/season/changes' do
57
+ Tmdb::Tv::Season.changes(59905, start_date: '2015-05-23', end_date: '2015-05-26')
58
+ end
59
+ end
60
+
61
+ subject { changes }
62
+
63
+ it 'should have changes of kind Tmdb::Change' do
64
+ expect(subject.sample).to be_an_instance_of(Tmdb::Change)
65
+ end
66
+
67
+ it 'changes should contain items of kind Tmdb::ChangeItem' do
68
+ expect(subject.first.items.first).to be_an_instance_of(Tmdb::ChangeItem)
69
+ end
70
+ end
71
+
72
+ context '#cast' do
73
+ let(:cast) do
74
+ VCR.use_cassette 'tv/season/cast' do
75
+ Tmdb::Tv::Season.cast(3572, 1)
76
+ end
77
+ end
78
+
79
+ subject { cast }
80
+
81
+ it 'should return an array of Tmdb::Person' do
82
+ expect(subject).to be_an_instance_of(Array)
83
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
84
+ end
85
+ end
86
+
87
+ context '#crew' do
88
+ let(:crew) do
89
+ VCR.use_cassette 'tv/season/crew' do
90
+ Tmdb::Tv::Season.crew(3572, 1)
91
+ end
92
+ end
93
+
94
+ subject { crew }
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 '#external_ids' do
103
+ let(:external_ids) do
104
+ VCR.use_cassette 'tv/season/external_ids' do
105
+ Tmdb::Tv::Season.external_ids(3572, 1)
106
+ end
107
+ end
108
+
109
+ subject { external_ids }
110
+
111
+ it { expect(subject).to be_an_instance_of(Tmdb::Tv::Season) }
112
+ end
113
+
114
+ context '#posters' do
115
+ let(:posters) do
116
+ VCR.use_cassette 'tv/season/posters' do
117
+ Tmdb::Tv::Season.posters(1399, 1)
118
+ end
119
+ end
120
+
121
+ subject { posters }
122
+
123
+ it 'should return an array of Tmdb::Poster' do
124
+ expect(subject).to be_an_instance_of(Array)
125
+ expect(subject.sample).to be_an_instance_of(Tmdb::Poster)
126
+ end
127
+ end
128
+
129
+ context '#videos' do
130
+ let(:videos) do
131
+ VCR.use_cassette 'tv/season/videos' do
132
+ Tmdb::Tv::Season.videos(1399, 1)
133
+ end
134
+ end
135
+
136
+ subject { videos }
137
+
138
+ it 'should return an array of Tmdb::Video' do
139
+ expect(subject).to be_an_instance_of(Array)
140
+ expect(subject.sample).to be_an_instance_of(Tmdb::Video)
141
+ end
142
+ end
143
+
144
+ end
data/spec/tv_spec.rb ADDED
@@ -0,0 +1,352 @@
1
+ require 'rspec'
2
+ require 'spec_helper'
3
+ require 'vcr'
4
+
5
+ describe Tmdb::TV 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::TV }
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(:changes) }
22
+ it { is_expected.to respond_to(:content_ratings) }
23
+ it { is_expected.to respond_to(:cast) }
24
+ it { is_expected.to respond_to(:crew) }
25
+ it { is_expected.to respond_to(:external_ids) }
26
+ it { is_expected.to respond_to(:backdrops) }
27
+ it { is_expected.to respond_to(:posters) }
28
+ it { is_expected.to respond_to(:keywords) }
29
+ it { is_expected.to respond_to(:similar) }
30
+ it { is_expected.to respond_to(:translations) }
31
+ it { is_expected.to respond_to(:videos) }
32
+ it { is_expected.to respond_to(:latest) }
33
+ it { is_expected.to respond_to(:on_the_air) }
34
+ it { is_expected.to respond_to(:airing_today) }
35
+ it { is_expected.to respond_to(:top_rated) }
36
+ it { is_expected.to respond_to(:popular) }
37
+
38
+ context '#detail' do
39
+ let(:detail) do
40
+ VCR.use_cassette 'tv/detail' do
41
+ Tmdb::TV.detail(1396)
42
+ end
43
+ end
44
+
45
+ subject { detail }
46
+
47
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
48
+
49
+ it 'Tmdb::TV should contain created_by field with Tmdb::Person objects' do
50
+ expect(subject.created_by).to be_an_instance_of(Array)
51
+ expect(subject.created_by.first).to be_an_instance_of(Tmdb::Person)
52
+ end
53
+
54
+ it 'Tmdb::TV should contain networks field with Tmdb::Network objects' do
55
+ expect(subject.networks).to be_an_instance_of(Array)
56
+ expect(subject.networks.first).to be_an_instance_of(Tmdb::Network)
57
+ end
58
+
59
+ it 'Tmdb::TV should contain seasons field with Tmdb::Tv::Season objects' do
60
+ expect(subject.seasons).to be_an_instance_of(Array)
61
+ expect(subject.seasons.first).to be_an_instance_of(Tmdb::Tv::Season)
62
+ end
63
+
64
+ it 'Tmdb::TV should contain genres field with Tmdb::Genre objects' do
65
+ expect(subject.genres).to be_an_instance_of(Array)
66
+ expect(subject.genres.first).to be_an_instance_of(Tmdb::Genre)
67
+ end
68
+
69
+ it 'Tmdb::TV should contain production_companies field with Tmdb::Company objects' do
70
+ expect(subject.production_companies).to be_an_instance_of(Array)
71
+ expect(subject.production_companies.first).to be_an_instance_of(Tmdb::Company)
72
+ end
73
+ end
74
+
75
+ context '#alternative_titles' do
76
+ let(:alternative_titles) do
77
+ VCR.use_cassette 'tv/alternative_titles' do
78
+ Tmdb::TV.alternative_titles(1396)
79
+ end
80
+ end
81
+
82
+ subject { alternative_titles }
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 '#changes' do
91
+ let(:changes) do
92
+ VCR.use_cassette 'tv/changes' do
93
+ Tmdb::TV.changes(1399, start_date: '2015-06-23', end_date: '2015-06-26')
94
+ end
95
+ end
96
+
97
+ subject { changes }
98
+
99
+ it 'should have changes of kind Tmdb::Change' do
100
+ expect(subject.sample).to be_an_instance_of(Tmdb::Change)
101
+ end
102
+
103
+ it 'changes should contain items of kind Tmdb::ChangeItem' do
104
+ expect(subject.first.items.first).to be_an_instance_of(Tmdb::ChangeItem)
105
+ end
106
+ end
107
+
108
+ context '#content_ratings' do
109
+ let(:content_ratings) do
110
+ VCR.use_cassette 'tv/content_ratings' do
111
+ Tmdb::TV.content_ratings(1396)
112
+ end
113
+ end
114
+
115
+ subject { content_ratings }
116
+
117
+ it 'should return an array of Tmdb::Rating' do
118
+ expect(subject).to be_an_instance_of(Array)
119
+ expect(subject.sample).to be_an_instance_of(Tmdb::Rating)
120
+ end
121
+ end
122
+
123
+ context '#cast' do
124
+ let(:cast) do
125
+ VCR.use_cassette 'tv/cast' do
126
+ Tmdb::TV.cast(1396)
127
+ end
128
+ end
129
+
130
+ subject { cast }
131
+
132
+ it 'should return an array of Tmdb::Person' do
133
+ expect(subject).to be_an_instance_of(Array)
134
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
135
+ end
136
+ end
137
+
138
+ context '#crew' do
139
+ let(:crew) do
140
+ VCR.use_cassette 'tv/crew' do
141
+ Tmdb::TV.crew(1396)
142
+ end
143
+ end
144
+
145
+ subject { crew }
146
+
147
+ it 'should return an array of Tmdb::Person' do
148
+ expect(subject).to be_an_instance_of(Array)
149
+ expect(subject.sample).to be_an_instance_of(Tmdb::Person)
150
+ end
151
+ end
152
+
153
+ context '#external_ids' do
154
+ let(:external_ids) do
155
+ VCR.use_cassette 'tv/external_ids' do
156
+ Tmdb::TV.external_ids(1396)
157
+ end
158
+ end
159
+
160
+ subject { external_ids }
161
+
162
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
163
+ end
164
+
165
+ context '#backdrops' do
166
+ let(:backdrops) do
167
+ VCR.use_cassette 'tv/backdrops' do
168
+ Tmdb::TV.backdrops(1396)
169
+ end
170
+ end
171
+
172
+ subject { backdrops }
173
+
174
+ it 'should return an array of Tmdb::Backdrop' do
175
+ expect(subject).to be_an_instance_of(Array)
176
+ expect(subject.sample).to be_an_instance_of(Tmdb::Backdrop)
177
+ end
178
+ end
179
+
180
+ context '#posters' do
181
+ let(:posters) do
182
+ VCR.use_cassette 'tv/posters' do
183
+ Tmdb::TV.posters(1396)
184
+ end
185
+ end
186
+
187
+ subject { posters }
188
+
189
+ it 'should return an array of Tmdb::Poster' do
190
+ expect(subject).to be_an_instance_of(Array)
191
+ expect(subject.sample).to be_an_instance_of(Tmdb::Poster)
192
+ end
193
+ end
194
+
195
+ context '#keywords' do
196
+ let(:keywords) do
197
+ VCR.use_cassette 'tv/keywords' do
198
+ Tmdb::TV.keywords(1396)
199
+ end
200
+ end
201
+
202
+ subject { keywords }
203
+
204
+ it 'should return an array of Tmdb::Keyword' do
205
+ expect(subject).to be_an_instance_of(Array)
206
+ expect(subject.sample).to be_an_instance_of(Tmdb::Keyword)
207
+ end
208
+ end
209
+
210
+ context '#similar' do
211
+ let(:similar) do
212
+ VCR.use_cassette 'tv/similar' do
213
+ Tmdb::TV.similar(1396)
214
+ end
215
+ end
216
+
217
+ subject { similar }
218
+
219
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
220
+
221
+ it 'should have results of kind Tmdb::TV' do
222
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
223
+ end
224
+ end
225
+
226
+ context '#translations' do
227
+ let(:translations) do
228
+ VCR.use_cassette 'tv/translations' do
229
+ Tmdb::TV.translations(1396)
230
+ end
231
+ end
232
+
233
+ subject { translations }
234
+
235
+ it 'should return an array of Tmdb::Translation' do
236
+ expect(subject).to be_an_instance_of(Array)
237
+ expect(subject.sample).to be_an_instance_of(Tmdb::Translation)
238
+ end
239
+ end
240
+
241
+ context '#videos' do
242
+ let(:videos) do
243
+ VCR.use_cassette 'tv/videos' do
244
+ Tmdb::TV.videos(1396)
245
+ end
246
+ end
247
+
248
+ subject { videos }
249
+
250
+ it 'should return an array of Tmdb::Video' do
251
+ expect(subject).to be_an_instance_of(Array)
252
+ expect(subject.sample).to be_an_instance_of(Tmdb::Video)
253
+ end
254
+ end
255
+
256
+ context '#latest' do
257
+ let(:latest) do
258
+ VCR.use_cassette 'tv/latest' do
259
+ Tmdb::TV.latest
260
+ end
261
+ end
262
+
263
+ subject { latest }
264
+
265
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
266
+
267
+ it 'Tmdb::TV should contain created_by field' do
268
+ expect(subject.created_by).to be_an_instance_of(Array)
269
+ end
270
+
271
+ it 'Tmdb::TV should contain networks field' do
272
+ expect(subject.networks).to be_an_instance_of(Array)
273
+ end
274
+
275
+ it 'Tmdb::TV should contain seasons field' do
276
+ expect(subject.seasons).to be_an_instance_of(Array)
277
+ end
278
+
279
+ it 'Tmdb::TV should contain genres field' do
280
+ expect(subject.genres).to be_an_instance_of(Array)
281
+ end
282
+
283
+ it 'Tmdb::TV should contain production_companies field' do
284
+ expect(subject.production_companies).to be_an_instance_of(Array)
285
+ end
286
+ end
287
+
288
+ context '#on_the_air' do
289
+ let(:on_the_air) do
290
+ VCR.use_cassette 'tv/on_the_air' do
291
+ Tmdb::TV.on_the_air
292
+ end
293
+ end
294
+
295
+ subject { on_the_air }
296
+
297
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
298
+
299
+ it 'should have results of kind Tmdb::TV' do
300
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
301
+ end
302
+ end
303
+
304
+ context '#airing_today' do
305
+ let(:airing_today) do
306
+ VCR.use_cassette 'tv/airing_today' do
307
+ Tmdb::TV.airing_today
308
+ end
309
+ end
310
+
311
+ subject { airing_today }
312
+
313
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
314
+
315
+ it 'should have results of kind Tmdb::TV' do
316
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
317
+ end
318
+ end
319
+
320
+ context '#top_rated' do
321
+ let(:top_rated) do
322
+ VCR.use_cassette 'tv/top_rated' do
323
+ Tmdb::TV.top_rated
324
+ end
325
+ end
326
+
327
+ subject { top_rated }
328
+
329
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
330
+
331
+ it 'should have results of kind Tmdb::TV' do
332
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
333
+ end
334
+ end
335
+
336
+ context '#popular' do
337
+ let(:popular) do
338
+ VCR.use_cassette 'tv/popular' do
339
+ Tmdb::TV.popular
340
+ end
341
+ end
342
+
343
+ subject { popular }
344
+
345
+ it { expect(subject).to be_an_instance_of(Tmdb::TV) }
346
+
347
+ it 'should have results of kind Tmdb::TV' do
348
+ expect(subject.results.sample).to be_an_instance_of(Tmdb::TV)
349
+ end
350
+ end
351
+
352
+ end