1
- require_relative '../lib/ ruby_http_client'
1
+ require ' ruby_http_client'
2
2
require 'minitest/autorun'
3
3
4
4
class MockResponse
@@ -50,49 +50,106 @@ def test_update_headers
50
50
def test_build_request_headers
51
51
request = { }
52
52
request = @client . build_request_headers ( request )
53
- assert_equal ( @client . request_headers , request )
53
+ assert_equal ( request , @client . request_headers )
54
54
end
55
55
56
56
def test_add_version
57
57
url = ''
58
58
@client . add_version ( url )
59
- assert_equal ( url , "/#{ @version } " )
59
+ assert_equal ( "/#{ @version } " , url )
60
60
end
61
61
62
62
def test_build_query_params
63
63
url = ''
64
64
query_params = { 'limit' => 100 , 'offset' => 0 }
65
65
url = @client . build_query_params ( url , query_params )
66
- assert_equal ( url , '?limit=100&offset=0' )
66
+ assert_equal ( '?limit=100&offset=0' , url )
67
67
end
68
68
69
69
def test_build_url
70
70
url1 = @client . my . path . to . the . endpoint
71
71
params = { 'limit' => 100 , 'offset' => 0 }
72
72
url = URI . parse ( @host + '/' + @version +
73
73
'/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 ) )
75
75
76
76
url1 = url1 . one_more
77
77
params = { 'limit' => 100 , 'offset' => 0 }
78
78
url = URI . parse ( @host + '/' + @version +
79
79
'/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 ) )
81
81
82
82
url2 = @client . my . path . _ ( 'to' ) . the . endpoint
83
83
params = { 'limit' => 100 , 'offset' => 0 }
84
84
url = URI . parse ( @host + '/' + @version +
85
85
'/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 ) )
87
87
end
88
88
89
89
def test_build_request
90
90
name = 'get'
91
91
args = nil
92
92
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 )
96
153
end
97
154
98
155
def add_ssl
@@ -105,13 +162,13 @@ def add_ssl
105
162
106
163
def test__
107
164
url1 = @client . _ ( 'test' )
108
- assert_equal ( url1 . url_path , [ 'test' ] )
165
+ assert_equal ( [ 'test' ] , url1 . url_path )
109
166
end
110
167
111
168
def test_method_missing
112
169
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 )
116
173
end
117
174
end
0 commit comments