tmdby 1.0.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 (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +31 -0
  6. data/Rakefile +2 -0
  7. data/lib/tmdby/client.rb +43 -0
  8. data/lib/tmdby/helpers/authentication.rb +17 -0
  9. data/lib/tmdby/response.rb +17 -0
  10. data/lib/tmdby/setup.rb +0 -0
  11. data/lib/tmdby/version.rb +3 -0
  12. data/lib/tmdby/wrapper.rb +62 -0
  13. data/lib/tmdby/wrappers/account.rb +103 -0
  14. data/lib/tmdby/wrappers/authentication.rb +32 -0
  15. data/lib/tmdby/wrappers/certifications.rb +15 -0
  16. data/lib/tmdby/wrappers/changes.rb +31 -0
  17. data/lib/tmdby/wrappers/collections.rb +20 -0
  18. data/lib/tmdby/wrappers/companies.rb +19 -0
  19. data/lib/tmdby/wrappers/configuration.rb +11 -0
  20. data/lib/tmdby/wrappers/credits.rb +13 -0
  21. data/lib/tmdby/wrappers/discover.rb +27 -0
  22. data/lib/tmdby/wrappers/find.rb +21 -0
  23. data/lib/tmdby/wrappers/genres.rb +27 -0
  24. data/lib/tmdby/wrappers/guest_sessions.rb +13 -0
  25. data/lib/tmdby/wrappers/jobs.rb +11 -0
  26. data/lib/tmdby/wrappers/keywords.rb +18 -0
  27. data/lib/tmdby/wrappers/lists.rb +67 -0
  28. data/lib/tmdby/wrappers/movies.rb +143 -0
  29. data/lib/tmdby/wrappers/networks.rb +11 -0
  30. data/lib/tmdby/wrappers/people.rb +71 -0
  31. data/lib/tmdby/wrappers/reviews.rb +11 -0
  32. data/lib/tmdby/wrappers/search.rb +71 -0
  33. data/lib/tmdby/wrappers/timezones.rb +11 -0
  34. data/lib/tmdby/wrappers/tv.rb +131 -0
  35. data/lib/tmdby/wrappers/tv_episodes.rb +63 -0
  36. data/lib/tmdby/wrappers/tv_seasons.rb +54 -0
  37. data/lib/tmdby.rb +47 -0
  38. data/tests/credentials.rb +7 -0
  39. data/tests/minitest/client_test.rb +60 -0
  40. data/tests/minitest/setup_test.rb +35 -0
  41. data/tests/minitest/wrapper_test.rb +64 -0
  42. data/tests/minitest/wrappers/account_test.rb +100 -0
  43. data/tests/minitest/wrappers/authentication_test.rb +50 -0
  44. data/tests/minitest/wrappers/certifications_test.rb +27 -0
  45. data/tests/minitest/wrappers/changes_test.rb +34 -0
  46. data/tests/minitest/wrappers/collections_test.rb +29 -0
  47. data/tests/minitest/wrappers/companies_test.rb +32 -0
  48. data/tests/minitest/wrappers/credits_test.rb +22 -0
  49. data/tests/minitest/wrappers/discover_test.rb +26 -0
  50. data/tests/minitest/wrappers/find_test.rb +18 -0
  51. data/tests/minitest/wrappers/genres_test.rb +35 -0
  52. data/tests/minitest/wrappers/guest_sessions_test.rb +20 -0
  53. data/tests/minitest/wrappers/jobs_test.rb +18 -0
  54. data/tests/minitest/wrappers/keywords_test.rb +27 -0
  55. data/tests/minitest/wrappers/lists_test.rb +124 -0
  56. data/tests/minitest/wrappers/minitest_wrapper.rb +40 -0
  57. data/tests/minitest/wrappers/movies_test.rb +177 -0
  58. data/tests/minitest/wrappers/networks_test.rb +18 -0
  59. data/tests/minitest/wrappers/people_test.rb +99 -0
  60. data/tests/minitest/wrappers/reviews_test.rb +18 -0
  61. data/tests/minitest/wrappers/search_test.rb +74 -0
  62. data/tests/minitest/wrappers/timezones_test.rb +21 -0
  63. data/tests/minitest/wrappers/tv_episodes_test.rb +87 -0
  64. data/tests/minitest/wrappers/tv_seasons_test.rb +76 -0
  65. data/tests/minitest/wrappers/tv_test.rb +171 -0
  66. data/tests/minitest_all.rb +13 -0
  67. data/tmdby.gemspec +24 -0
  68. metadata +152 -0
@@ -0,0 +1,124 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestLists < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @@session_id ||= Tmdby::Authentication.get_session_id USERNAME, PASSWORD
8
+ @lists = Tmdby::Lists
9
+ end
10
+
11
+ # This function creates a new List and returns its ID
12
+ def get_id_new_list
13
+ (@lists.new @@session_id, Time.new.strftime("Test-%Y-%m-%d-%H:%M:%S-#{Random.new.rand}"), 'description').body["list_id"]
14
+ end
15
+
16
+ def delete_list(id)
17
+ @lists.delete id, @@session_id
18
+ end
19
+
20
+ def test_get
21
+ list_id = get_id_new_list
22
+
23
+ multi_assert @lists.get(list_id),
24
+ uri: "http://api.themoviedb.org/3/list/#{list_id}?api_key=#{API_KEY}",
25
+ http_verb: "GET",
26
+ code: "200",
27
+ id: list_id
28
+
29
+ delete_list list_id
30
+ end
31
+
32
+ def test_delete
33
+ list_id = get_id_new_list
34
+
35
+ multi_assert @lists.delete(list_id, @@session_id),
36
+ uri: "http://api.themoviedb.org/3/list/#{list_id}?session_id=#{@@session_id}&api_key=#{API_KEY}",
37
+ http_verb: "DELETE",
38
+ code: "200",
39
+ status_code: 13
40
+ end
41
+
42
+ def test_item_status
43
+ list_id = get_id_new_list
44
+
45
+ # We add Movie#550 in the list
46
+ @lists.add_item list_id, @@session_id, 550
47
+ sleep 5
48
+
49
+ # We verify Movie#550 is in the list
50
+ multi_assert @lists.item_status(list_id, 550),
51
+ uri: "http://api.themoviedb.org/3/list/#{list_id}/item_status?movie_id=550&api_key=#{API_KEY}",
52
+ http_verb: "GET",
53
+ code: "200",
54
+ id: list_id,
55
+ must_be_true: "item_present"
56
+
57
+ delete_list list_id
58
+ end
59
+
60
+ def test_list
61
+ list_name = Time.new.strftime("Test-%Y-%m-%d-%H:%M:%S-#{Random.new.rand}")
62
+
63
+ response = @lists.new @@session_id, list_name, 'new description'
64
+
65
+ multi_assert response,
66
+ uri: "http://api.themoviedb.org/3/list?session_id=#{@@session_id}&api_key=#{API_KEY}",
67
+ http_verb: "POST",
68
+ post_params: {"name" => list_name, "description" => "new description"},
69
+ code: "201",
70
+ status_code: 1,
71
+ includes: "list_id"
72
+
73
+ delete_list response.body["list_id"]
74
+ end
75
+
76
+ def test_add_item
77
+ list_id = get_id_new_list
78
+
79
+ response = @lists.add_item list_id, @@session_id, 550
80
+
81
+ multi_assert response,
82
+ uri: "http://api.themoviedb.org/3/list/#{list_id}/add_item?session_id=#{@@session_id}&api_key=#{API_KEY}",
83
+ http_verb: "POST",
84
+ post_params: {"media_id" => 550},
85
+ code: "201",
86
+ status_code: 12
87
+
88
+ delete_list list_id
89
+ end
90
+
91
+ def test_remove_item
92
+ list_id = get_id_new_list
93
+
94
+ @lists.add_item list_id, @@session_id, 550
95
+
96
+ sleep 5
97
+
98
+ response = @lists.remove_item list_id, @@session_id, 550
99
+
100
+ multi_assert response,
101
+ uri: "http://api.themoviedb.org/3/list/#{list_id}/remove_item?session_id=#{@@session_id}&api_key=#{API_KEY}",
102
+ http_verb: "POST",
103
+ post_params: {"media_id" => 550},
104
+ code: "200",
105
+ status_code: 13
106
+
107
+ delete_list list_id
108
+ end
109
+
110
+ def test_clear
111
+ list_id = get_id_new_list
112
+
113
+ response = (@lists.clear list_id, @@session_id, true)
114
+
115
+ multi_assert response,
116
+ uri: "http://api.themoviedb.org/3/list/#{list_id}/clear?session_id=#{@@session_id}&confirm=true&api_key=#{API_KEY}",
117
+ http_verb: "POST",
118
+ code: "201",
119
+ status_code: 12
120
+
121
+ delete_list list_id
122
+ end
123
+
124
+ end
@@ -0,0 +1,40 @@
1
+ require 'minitest/autorun'
2
+ require 'tmdby'
3
+
4
+ class MinitestWrapper < Minitest::Test
5
+
6
+ def init_setup
7
+ Tmdby::Setup.key = API_KEY
8
+ Tmdby::Setup.default_language = nil
9
+ end
10
+
11
+ def multi_assert(result,
12
+ uri:,
13
+ http_verb:,
14
+ code:,
15
+ includes: nil,
16
+ status_code: nil,
17
+ id: nil,
18
+ empty: nil,
19
+ not_empty: nil,
20
+ not_nil: nil,
21
+ must_be_true: nil,
22
+ must_be_false: nil,
23
+ post_params: nil
24
+ )
25
+ assert_equal uri, result.uri.to_s
26
+ assert_equal http_verb, result.http_verb
27
+ assert_equal code, result.code
28
+ refute_empty result.body
29
+ assert_includes result.body, includes if includes
30
+ assert_equal id, result.body["id"] if id
31
+ assert_equal status_code, result.body["status_code"] if status_code
32
+ assert_empty result.body[empty] if empty
33
+ refute_empty result.body[not_empty] if not_empty
34
+ refute_nil result.body[not_nil] if not_nil
35
+ assert result.body[must_be_true] if must_be_true
36
+ refute result.body[must_be_false] if must_be_false
37
+ assert_equal result.post_params, post_params if post_params
38
+ end
39
+
40
+ end
@@ -0,0 +1,177 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestMovies < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @movies = Tmdby::Movies
8
+ end
9
+
10
+ def test_get
11
+ multi_assert @movies.get(550),
12
+ uri: "http://api.themoviedb.org/3/movie/550?api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ id: 550
16
+ end
17
+
18
+ def test_account_states
19
+ session_id = Tmdby::Authentication.get_session_id USERNAME, PASSWORD
20
+
21
+ multi_assert @movies.account_states(550, session_id),
22
+ uri: "http://api.themoviedb.org/3/movie/550/account_states?session_id=#{session_id}&api_key=#{API_KEY}",
23
+ http_verb: "GET",
24
+ code: "200",
25
+ id: 550
26
+ end
27
+
28
+ def test_alternative_titles
29
+ multi_assert @movies.alternative_titles(550),
30
+ uri: "http://api.themoviedb.org/3/movie/550/alternative_titles?api_key=#{API_KEY}",
31
+ http_verb: "GET",
32
+ code: "200",
33
+ id: 550,
34
+ not_empty: "titles"
35
+ end
36
+
37
+ def test_credits
38
+ multi_assert @movies.credits(550),
39
+ uri: "http://api.themoviedb.org/3/movie/550/credits?api_key=#{API_KEY}",
40
+ http_verb: "GET",
41
+ code: "200",
42
+ id: 550,
43
+ not_empty: "cast"
44
+ end
45
+
46
+ def test_images
47
+ multi_assert @movies.images(550),
48
+ uri: "http://api.themoviedb.org/3/movie/550/images?api_key=#{API_KEY}",
49
+ http_verb: "GET",
50
+ code: "200",
51
+ id: 550,
52
+ not_empty: "backdrops"
53
+ end
54
+
55
+ def test_keywords
56
+ multi_assert @movies.keywords(550),
57
+ uri: "http://api.themoviedb.org/3/movie/550/keywords?api_key=#{API_KEY}",
58
+ http_verb: "GET",
59
+ code: "200",
60
+ id: 550,
61
+ not_empty: "keywords"
62
+ end
63
+
64
+ def test_releases
65
+ multi_assert @movies.releases(550),
66
+ uri: "http://api.themoviedb.org/3/movie/550/releases?api_key=#{API_KEY}",
67
+ http_verb: "GET",
68
+ code: "200",
69
+ id: 550,
70
+ not_empty: "countries"
71
+ end
72
+
73
+ def test_videos
74
+ multi_assert @movies.videos(550),
75
+ uri: "http://api.themoviedb.org/3/movie/550/videos?api_key=#{API_KEY}",
76
+ http_verb: "GET",
77
+ code: "200",
78
+ id: 550,
79
+ not_empty: "results"
80
+ end
81
+
82
+ def test_translations
83
+ multi_assert @movies.translations(550),
84
+ uri: "http://api.themoviedb.org/3/movie/550/translations?api_key=#{API_KEY}",
85
+ http_verb: "GET",
86
+ code: "200",
87
+ id: 550,
88
+ not_empty: "translations"
89
+ end
90
+
91
+ def test_similar
92
+ multi_assert @movies.similar(550),
93
+ uri: "http://api.themoviedb.org/3/movie/550/similar?api_key=#{API_KEY}",
94
+ http_verb: "GET",
95
+ code: "200",
96
+ not_empty: "results"
97
+ end
98
+
99
+ def test_reviews
100
+ multi_assert @movies.reviews(157336),
101
+ uri: "http://api.themoviedb.org/3/movie/157336/reviews?api_key=#{API_KEY}",
102
+ http_verb: "GET",
103
+ code: "200",
104
+ id: 157336,
105
+ not_empty: "results"
106
+ end
107
+
108
+ def test_lists
109
+ multi_assert @movies.lists(550),
110
+ uri: "http://api.themoviedb.org/3/movie/550/lists?api_key=#{API_KEY}",
111
+ http_verb: "GET",
112
+ code: "200",
113
+ id: 550,
114
+ not_empty: "results"
115
+ end
116
+
117
+ def test_changes
118
+ multi_assert @movies.changes(550),
119
+ uri: "http://api.themoviedb.org/3/movie/550/changes?api_key=#{API_KEY}",
120
+ http_verb: "GET",
121
+ code: "200",
122
+ includes: "changes"
123
+ end
124
+
125
+ def test_rating
126
+ guest_session_id = Tmdby::Authentication.guest_session_new.body["guest_session_id"]
127
+
128
+ multi_assert @movies.rating(551, 9, nil, guest_session_id),
129
+ uri: "http://api.themoviedb.org/3/movie/551/rating?guest_session_id=#{guest_session_id}&api_key=#{API_KEY}",
130
+ http_verb: "POST",
131
+ post_params: {"value" => 9},
132
+ code: "201",
133
+ status_code: 1
134
+ end
135
+
136
+ def test_latest
137
+ multi_assert @movies.latest,
138
+ uri: "http://api.themoviedb.org/3/movie/latest?api_key=#{API_KEY}",
139
+ http_verb: "GET",
140
+ code: "200",
141
+ not_nil: "id"
142
+ end
143
+
144
+ def test_upcoming
145
+ multi_assert @movies.upcoming,
146
+ uri: "http://api.themoviedb.org/3/movie/upcoming?api_key=#{API_KEY}",
147
+ http_verb: "GET",
148
+ code: "200",
149
+ includes: "results"
150
+ end
151
+
152
+ def test_now_playing
153
+ multi_assert @movies.now_playing,
154
+ uri: "http://api.themoviedb.org/3/movie/now_playing?api_key=#{API_KEY}",
155
+ http_verb: "GET",
156
+ code: "200",
157
+ includes: "results"
158
+ end
159
+
160
+ def test_popular
161
+ multi_assert @movies.popular,
162
+ uri: "http://api.themoviedb.org/3/movie/popular?api_key=#{API_KEY}",
163
+ http_verb: "GET",
164
+ code: "200",
165
+ includes: "results"
166
+ end
167
+
168
+ def test_top_rated
169
+ multi_assert @movies.top_rated,
170
+ uri: "http://api.themoviedb.org/3/movie/top_rated?api_key=#{API_KEY}",
171
+ http_verb: "GET",
172
+ code: "200",
173
+ includes: "results"
174
+ end
175
+
176
+
177
+ end
@@ -0,0 +1,18 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestNetworks < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @networks = Tmdby::Networks
8
+ end
9
+
10
+ def test_get
11
+ multi_assert @networks.get(1),
12
+ uri: "http://api.themoviedb.org/3/network/1?api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ id: 1
16
+ end
17
+
18
+ end
@@ -0,0 +1,99 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestPeople < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @people = Tmdby::People
8
+ end
9
+
10
+ def test_get
11
+ multi_assert @people.get(287),
12
+ uri: "http://api.themoviedb.org/3/person/287?api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ id: 287
16
+ end
17
+
18
+ def test_movie_credits
19
+ multi_assert @people.movie_credits(287),
20
+ uri: "http://api.themoviedb.org/3/person/287/movie_credits?api_key=#{API_KEY}",
21
+ http_verb: "GET",
22
+ code: "200",
23
+ id: 287,
24
+ not_empty: "cast"
25
+ end
26
+
27
+ def test_tv_credits
28
+ multi_assert @people.tv_credits(287),
29
+ uri: "http://api.themoviedb.org/3/person/287/tv_credits?api_key=#{API_KEY}",
30
+ http_verb: "GET",
31
+ code: "200",
32
+ id: 287,
33
+ not_empty: "cast"
34
+ end
35
+
36
+ def test_combined_credits
37
+ multi_assert @people.combined_credits(287),
38
+ uri: "http://api.themoviedb.org/3/person/287/combined_credits?api_key=#{API_KEY}",
39
+ http_verb: "GET",
40
+ code: "200",
41
+ id: 287,
42
+ not_empty: "cast"
43
+ end
44
+
45
+ def test_external_ids
46
+ response = @people.external_ids 287
47
+
48
+ multi_assert response,
49
+ uri: "http://api.themoviedb.org/3/person/287/external_ids?api_key=#{API_KEY}",
50
+ http_verb: "GET",
51
+ code: "200",
52
+ id: 287
53
+
54
+ assert_equal "nm0000093", response.body["imdb_id"]
55
+ end
56
+
57
+ def test_images
58
+ multi_assert @people.images(287),
59
+ uri: "http://api.themoviedb.org/3/person/287/images?api_key=#{API_KEY}",
60
+ http_verb: "GET",
61
+ code: "200",
62
+ id: 287,
63
+ not_empty: "profiles"
64
+ end
65
+
66
+ def test_tagged_images
67
+ multi_assert @people.tagged_images(287),
68
+ uri: "http://api.themoviedb.org/3/person/287/tagged_images?api_key=#{API_KEY}",
69
+ http_verb: "GET",
70
+ code: "200",
71
+ id: 287,
72
+ not_empty: "results"
73
+ end
74
+
75
+ def test_changes
76
+ multi_assert @people.changes(287),
77
+ uri: "http://api.themoviedb.org/3/person/287/changes?api_key=#{API_KEY}",
78
+ http_verb: "GET",
79
+ code: "200",
80
+ includes: "changes"
81
+ end
82
+
83
+ def test_popular
84
+ multi_assert @people.popular,
85
+ uri: "http://api.themoviedb.org/3/person/popular?api_key=#{API_KEY}",
86
+ http_verb: "GET",
87
+ code: "200",
88
+ not_empty: "results"
89
+ end
90
+
91
+ def test_latest
92
+ multi_assert @people.latest,
93
+ uri: "http://api.themoviedb.org/3/person/latest?api_key=#{API_KEY}",
94
+ http_verb: "GET",
95
+ code: "200",
96
+ not_nil: "id"
97
+ end
98
+
99
+ end
@@ -0,0 +1,18 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestReviews < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @reviews = Tmdby::Reviews
8
+ end
9
+
10
+ def test_get
11
+ multi_assert @reviews.get("5013bc76760ee372cb00253e"),
12
+ uri: "http://api.themoviedb.org/3/review/5013bc76760ee372cb00253e?api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ id: "5013bc76760ee372cb00253e"
16
+ end
17
+
18
+ end
@@ -0,0 +1,74 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestSearch < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @search = Tmdby::Search
8
+ end
9
+
10
+ def test_company
11
+ multi_assert @search.company("warner"),
12
+ uri: "http://api.themoviedb.org/3/search/company?query=warner&api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ not_empty: "results"
16
+ end
17
+
18
+ def test_collection
19
+ multi_assert @search.collection("avenger"),
20
+ uri: "http://api.themoviedb.org/3/search/collection?query=avenger&api_key=#{API_KEY}",
21
+ http_verb: "GET",
22
+ code: "200",
23
+ not_empty: "results"
24
+ end
25
+
26
+ def test_keyword
27
+ multi_assert @search.keyword("teen"),
28
+ uri: "http://api.themoviedb.org/3/search/keyword?query=teen&api_key=#{API_KEY}",
29
+ http_verb: "GET",
30
+ code: "200",
31
+ not_empty: "results"
32
+ end
33
+
34
+ def test_list
35
+ multi_assert @search.list("warner"),
36
+ uri: "http://api.themoviedb.org/3/search/list?query=warner&api_key=#{API_KEY}",
37
+ http_verb: "GET",
38
+ code: "200",
39
+ not_empty: "results"
40
+ end
41
+
42
+ def test_movie
43
+ multi_assert @search.movie("matrix"),
44
+ uri: "http://api.themoviedb.org/3/search/movie?query=matrix&api_key=#{API_KEY}",
45
+ http_verb: "GET",
46
+ code: "200",
47
+ not_empty: "results"
48
+ end
49
+
50
+ def test_multi
51
+ multi_assert @search.multi("john"),
52
+ uri: "http://api.themoviedb.org/3/search/multi?query=john&api_key=#{API_KEY}",
53
+ http_verb: "GET",
54
+ code: "200",
55
+ not_empty: "results"
56
+ end
57
+
58
+ def test_person
59
+ multi_assert @search.person("matthew perry"),
60
+ uri: "http://api.themoviedb.org/3/search/person?query=matthew+perry&api_key=#{API_KEY}",
61
+ http_verb: "GET",
62
+ code: "200",
63
+ not_empty: "results"
64
+ end
65
+
66
+ def test_tv
67
+ multi_assert @search.tv("game of throne"),
68
+ uri: "http://api.themoviedb.org/3/search/tv?query=game+of+throne&api_key=#{API_KEY}",
69
+ http_verb: "GET",
70
+ code: "200",
71
+ not_empty: "results"
72
+ end
73
+
74
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestTimezones < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @timezones = Tmdby::Timezones
8
+ end
9
+
10
+ def test_list
11
+ response = @timezones.list
12
+
13
+ multi_assert response,
14
+ uri: "http://api.themoviedb.org/3/timezones/list?api_key=#{API_KEY}",
15
+ http_verb: "GET",
16
+ code: "200"
17
+
18
+ refute_empty response.body
19
+ end
20
+
21
+ end
@@ -0,0 +1,87 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestTvEpisodes < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @tv_episodes = Tmdby::TvEpisodes
8
+ end
9
+
10
+ def test_get
11
+ multi_assert @tv_episodes.get(1396, 1, 1),
12
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/episode/1?api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ id: 62085
16
+ end
17
+
18
+ def test_changes
19
+ multi_assert @tv_episodes.changes(62085),
20
+ uri: "http://api.themoviedb.org/3/tv/episode/62085/changes?api_key=#{API_KEY}",
21
+ http_verb: "GET",
22
+ code: "200",
23
+ includes: "changes"
24
+ end
25
+
26
+ def test_account_states
27
+ session_id = Tmdby::Authentication.get_session_id USERNAME, PASSWORD
28
+
29
+ multi_assert @tv_episodes.account_states(1396, 1, 7, session_id),
30
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/episode/7/account_states?session_id=#{session_id}&api_key=#{API_KEY}",
31
+ http_verb: "GET",
32
+ code: "200",
33
+ id: 62091,
34
+ includes: "rated"
35
+ end
36
+
37
+ def test_credits
38
+ multi_assert @tv_episodes.credits(1396, 1, 1),
39
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/episode/1/credits?api_key=#{API_KEY}",
40
+ http_verb: "GET",
41
+ code: "200",
42
+ id: 62085,
43
+ not_empty: "cast"
44
+ end
45
+
46
+ def test_external_ids
47
+ response = @tv_episodes.external_ids 1396, 1, 1
48
+
49
+ multi_assert response,
50
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/episode/1/external_ids?api_key=#{API_KEY}",
51
+ http_verb: "GET",
52
+ code: "200",
53
+ id: 62085
54
+
55
+ assert_equal "tt0959621", response.body["imdb_id"]
56
+ end
57
+
58
+ def test_images
59
+ multi_assert @tv_episodes.images(1396, 1, 1),
60
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/episode/1/images?api_key=#{API_KEY}",
61
+ http_verb: "GET",
62
+ code: "200",
63
+ id: 62085,
64
+ not_empty: "stills"
65
+ end
66
+
67
+ def test_rating
68
+ guest_session_id = Tmdby::Authentication.guest_session_new.body["guest_session_id"]
69
+
70
+ multi_assert @tv_episodes.rating(1396, 1, 1, 8, nil, guest_session_id),
71
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/episode/1/rating?guest_session_id=#{guest_session_id}&api_key=#{API_KEY}",
72
+ http_verb: "POST",
73
+ post_params: {"value" => 8},
74
+ code: "201",
75
+ status_code: 1
76
+ end
77
+
78
+ def test_videos
79
+ multi_assert @tv_episodes.videos(1396, 1, 1),
80
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/episode/1/videos?api_key=#{API_KEY}",
81
+ http_verb: "GET",
82
+ code: "200",
83
+ id: 62085,
84
+ includes: "results"
85
+ end
86
+
87
+ end