1- require_relative '../lib/ ruby_http_client'
1+ require ' ruby_http_client'
22require 'minitest/autorun'
33
44class MockResponse
@@ -50,49 +50,106 @@ def test_update_headers
5050 def test_build_request_headers
5151 request = { }
5252 request = @client . build_request_headers ( request )
53- assert_equal ( @client . request_headers , request )
53+ assert_equal ( request , @client . request_headers )
5454 end
5555
5656 def test_add_version
5757 url = ''
5858 @client . add_version ( url )
59- assert_equal ( url , "/#{ @version } " )
59+ assert_equal ( "/#{ @version } " , url )
6060 end
6161
6262 def test_build_query_params
6363 url = ''
6464 query_params = { 'limit' => 100 , 'offset' => 0 }
6565 url = @client . build_query_params ( url , query_params )
66- assert_equal ( url , '?limit=100&offset=0' )
66+ assert_equal ( '?limit=100&offset=0' , url )
6767 end
6868
6969 def test_build_url
7070 url1 = @client . my . path . to . the . endpoint
7171 params = { 'limit' => 100 , 'offset' => 0 }
7272 url = URI . parse ( @host + '/' + @version +
7373 '/my/path/to/the/endpoint?limit=100&offset=0' )
74- assert_equal ( url1 . build_url ( query_params : params ) , url )
74+ assert_equal ( url , url1 . build_url ( query_params : params ) )
7575
7676 url1 = url1 . one_more
7777 params = { 'limit' => 100 , 'offset' => 0 }
7878 url = URI . parse ( @host + '/' + @version +
7979 '/my/path/to/the/endpoint/one_more?limit=100&offset=0' )
80- assert_equal ( url1 . build_url ( query_params : params ) , url )
80+ assert_equal ( url , url1 . build_url ( query_params : params ) )
8181
8282 url2 = @client . my . path . _ ( 'to' ) . the . endpoint
8383 params = { 'limit' => 100 , 'offset' => 0 }
8484 url = URI . parse ( @host + '/' + @version +
8585 '/my/path/to/the/endpoint?limit=100&offset=0' )
86- assert_equal ( url2 . build_url ( query_params : params ) , url )
86+ assert_equal ( url , url2 . build_url ( query_params : params ) )
8787 end
8888
8989 def test_build_request
9090 name = 'get'
9191 args = nil
9292 response = @client . build_request ( name , args )
93- assert_equal ( response . status_code , 200 )
94- assert_equal ( response . body , 'message' => 'success' )
95- assert_equal ( response . headers , 'headers' => 'test' )
93+ assert_equal ( 200 , response . status_code )
94+ assert_equal ( { 'message' => 'success' } , response . body )
95+ assert_equal ( { 'headers' => 'test' } , response . headers )
96+ end
97+
98+ def test_build_request_post_empty_content_type
99+ headers = {
100+ }
101+ client = MockRequest . new (
102+ host : 'https://localhost' ,
103+ request_headers : headers ,
104+ version : 'v3'
105+ )
106+ args = [ { 'request_body' => { "hogekey" => "hogevalue" } } ]
107+ client . build_request ( 'post' , args )
108+ assert_equal ( 'application/json' , client . request [ 'Content-Type' ] )
109+ assert_equal ( '{"hogekey":"hogevalue"}' , client . request . body )
110+ end
111+
112+ def test_build_request_get_application_json
113+ headers = {
114+ 'Content-Type' => 'application/json'
115+ }
116+ client = MockRequest . new (
117+ host : 'https://localhost' ,
118+ request_headers : headers ,
119+ version : 'v3'
120+ )
121+ client . build_request ( 'get' , nil )
122+ assert_equal ( 'application/json' , client . request [ 'Content-Type' ] )
123+ assert_equal ( nil , client . request . body )
124+ end
125+
126+ def test_build_request_post_empty_body
127+ headers = {
128+ 'Content-Type' => 'application/json'
129+ }
130+ client = MockRequest . new (
131+ host : 'https://localhost' ,
132+ request_headers : headers ,
133+ version : 'v3'
134+ )
135+ client . build_request ( 'post' , nil )
136+ assert_equal ( '' , client . request [ 'Content-Type' ] )
137+ assert_equal ( nil , client . request . body )
138+ end
139+
140+ def test_build_request_post_multipart
141+ headers = {
142+ 'Content-Type' => 'multipart/form-data; boundary=xYzZY'
143+ }
144+ client = MockRequest . new (
145+ host : 'https://localhost' ,
146+ request_headers : headers ,
147+ )
148+ name = 'post'
149+ args = [ { 'request_body' => 'hogebody' } ]
150+ client . build_request ( name , args )
151+ assert_equal ( 'multipart/form-data; boundary=xYzZY' , client . request [ 'Content-Type' ] )
152+ assert_equal ( 'hogebody' , client . request . body )
96153 end
97154
98155 def add_ssl
@@ -105,13 +162,13 @@ def add_ssl
105162
106163 def test__
107164 url1 = @client . _ ( 'test' )
108- assert_equal ( url1 . url_path , [ 'test' ] )
165+ assert_equal ( [ 'test' ] , url1 . url_path )
109166 end
110167
111168 def test_method_missing
112169 response = @client . get
113- assert_equal ( response . status_code , 200 )
114- assert_equal ( response . body , 'message' => 'success' )
115- assert_equal ( response . headers , 'headers' => 'test' )
170+ assert_equal ( 200 , response . status_code )
171+ assert_equal ( { 'message' => 'success' } , response . body )
172+ assert_equal ( { 'headers' => 'test' } , response . headers )
116173 end
117174end
0 commit comments