@@ -117,24 +117,14 @@ func TestHTTPService_Get(t *testing.T) {
117117 }))
118118 defer server .Close ()
119119
120- service := & httpService {
121- Client : http .DefaultClient ,
122- url : server .URL ,
123- Tracer : otel .Tracer ("gofr-http-client" ),
124- Logger : logging .NewMockLogger (logging .INFO ),
125- }
120+ service := newService (t , server )
126121
127122 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
128123
129124 resp , err := service .Get (t .Context (), "test-path" ,
130125 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }})
131126
132- if resp != nil {
133- defer resp .Body .Close ()
134- }
135-
136- require .NoError (t , err )
137- assert .NotNil (t , resp , "TEST, Failed." )
127+ validateResponse (t , resp , err , false )
138128}
139129
140130func TestHTTPService_GetWithHeaders (t * testing.T ) {
@@ -149,25 +139,15 @@ func TestHTTPService_GetWithHeaders(t *testing.T) {
149139 }))
150140 defer server .Close ()
151141
152- service := & httpService {
153- Client : http .DefaultClient ,
154- url : server .URL ,
155- Tracer : otel .Tracer ("gofr-http-client" ),
156- Logger : logging .NewMockLogger (logging .INFO ),
157- }
142+ service := newService (t , server )
158143
159144 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
160145
161146 resp , err := service .GetWithHeaders (t .Context (), "test-path" ,
162147 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }},
163148 map [string ]string {"header1" : "value1" })
164149
165- if resp != nil {
166- defer resp .Body .Close ()
167- }
168-
169- require .NoError (t , err )
170- assert .NotNil (t , resp , "TEST, Failed." )
150+ validateResponse (t , resp , err , false )
171151}
172152
173153func TestHTTPService_Put (t * testing.T ) {
@@ -190,24 +170,14 @@ func TestHTTPService_Put(t *testing.T) {
190170 }))
191171 defer server .Close ()
192172
193- service := & httpService {
194- Client : http .DefaultClient ,
195- url : server .URL ,
196- Tracer : otel .Tracer ("gofr-http-client" ),
197- Logger : logging .NewMockLogger (logging .INFO ),
198- }
173+ service := newService (t , server )
199174
200175 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
201176
202177 resp , err := service .Put (t .Context (), "test-path" ,
203178 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }}, []byte ("{Test Body}" ))
204179
205- if resp != nil {
206- defer resp .Body .Close ()
207- }
208-
209- require .NoError (t , err )
210- assert .NotNil (t , resp , "TEST, Failed." )
180+ validateResponse (t , resp , err , false )
211181}
212182
213183func TestHTTPService_PutWithHeaders (t * testing.T ) {
@@ -231,25 +201,15 @@ func TestHTTPService_PutWithHeaders(t *testing.T) {
231201 }))
232202 defer server .Close ()
233203
234- service := & httpService {
235- Client : http .DefaultClient ,
236- url : server .URL ,
237- Tracer : otel .Tracer ("gofr-http-client" ),
238- Logger : logging .NewMockLogger (logging .INFO ),
239- }
204+ service := newService (t , server )
240205
241206 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
242207
243208 resp , err := service .PutWithHeaders (t .Context (), "test-path" ,
244209 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }}, []byte ("{Test Body}" ),
245210 map [string ]string {"header1" : "value1" })
246211
247- if resp != nil {
248- defer resp .Body .Close ()
249- }
250-
251- require .NoError (t , err )
252- assert .NotNil (t , resp , "TEST, Failed." )
212+ validateResponse (t , resp , err , false )
253213}
254214
255215func TestHTTPService_Patch (t * testing.T ) {
@@ -272,24 +232,14 @@ func TestHTTPService_Patch(t *testing.T) {
272232 }))
273233 defer server .Close ()
274234
275- service := & httpService {
276- Client : http .DefaultClient ,
277- url : server .URL ,
278- Tracer : otel .Tracer ("gofr-http-client" ),
279- Logger : logging .NewMockLogger (logging .INFO ),
280- }
235+ service := newService (t , server )
281236
282237 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
283238
284239 resp , err := service .Patch (t .Context (), "test-path" ,
285240 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }}, []byte ("{Test Body}" ))
286241
287- if resp != nil {
288- defer resp .Body .Close ()
289- }
290-
291- require .NoError (t , err )
292- assert .NotNil (t , resp , "TEST, Failed." )
242+ validateResponse (t , resp , err , false )
293243}
294244
295245func TestHTTPService_PatchWithHeaders (t * testing.T ) {
@@ -303,7 +253,7 @@ func TestHTTPService_PatchWithHeaders(t *testing.T) {
303253 t .Fatal ("Unable to read request body" )
304254 }
305255
306- assert .Equal (t , http .MethodPut , r .Method )
256+ assert .Equal (t , http .MethodPatch , r .Method )
307257 assert .Equal (t , "/test-path" , r .URL .Path )
308258 assert .Equal (t , "key=value&name=gofr&name=test" , r .URL .RawQuery )
309259 assert .Contains (t , "value1" , r .Header .Get ("Header1" ))
@@ -313,25 +263,15 @@ func TestHTTPService_PatchWithHeaders(t *testing.T) {
313263 }))
314264 defer server .Close ()
315265
316- service := & httpService {
317- Client : http .DefaultClient ,
318- url : server .URL ,
319- Tracer : otel .Tracer ("gofr-http-client" ),
320- Logger : logging .NewMockLogger (logging .INFO ),
321- }
266+ service := newService (t , server )
322267
323268 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
324269
325- resp , err := service .PutWithHeaders (t .Context (), "test-path" ,
270+ resp , err := service .PatchWithHeaders (t .Context (), "test-path" ,
326271 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }}, []byte ("{Test Body}" ),
327272 map [string ]string {"header1" : "value1" })
328273
329- if resp != nil {
330- defer resp .Body .Close ()
331- }
332-
333- require .NoError (t , err )
334- assert .NotNil (t , resp , "TEST, Failed." )
274+ validateResponse (t , resp , err , false )
335275}
336276
337277func TestHTTPService_Post (t * testing.T ) {
@@ -354,24 +294,14 @@ func TestHTTPService_Post(t *testing.T) {
354294 }))
355295 defer server .Close ()
356296
357- service := & httpService {
358- Client : http .DefaultClient ,
359- url : server .URL ,
360- Tracer : otel .Tracer ("gofr-http-client" ),
361- Logger : logging .NewMockLogger (logging .INFO ),
362- }
297+ service := newService (t , server )
363298
364299 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
365300
366301 resp , err := service .Post (t .Context (), "test-path" ,
367302 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }}, []byte ("{Test Body}" ))
368303
369- if resp != nil {
370- defer resp .Body .Close ()
371- }
372-
373- require .NoError (t , err )
374- assert .NotNil (t , resp , "TEST, Failed." )
304+ validateResponse (t , resp , err , false )
375305}
376306
377307func TestHTTPService_PostWithHeaders (t * testing.T ) {
@@ -395,25 +325,15 @@ func TestHTTPService_PostWithHeaders(t *testing.T) {
395325 }))
396326 defer server .Close ()
397327
398- service := & httpService {
399- Client : http .DefaultClient ,
400- url : server .URL ,
401- Tracer : otel .Tracer ("gofr-http-client" ),
402- Logger : logging .NewMockLogger (logging .INFO ),
403- }
328+ service := newService (t , server )
404329
405330 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
406331
407332 resp , err := service .PostWithHeaders (t .Context (), "test-path" ,
408333 map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }}, []byte ("{Test Body}" ),
409334 map [string ]string {"header1" : "value1" })
410335
411- if resp != nil {
412- defer resp .Body .Close ()
413- }
414-
415- require .NoError (t , err )
416- assert .NotNil (t , resp , "TEST, Failed." )
336+ validateResponse (t , resp , err , false )
417337}
418338
419339func TestHTTPService_Delete (t * testing.T ) {
@@ -435,23 +355,13 @@ func TestHTTPService_Delete(t *testing.T) {
435355 }))
436356 defer server .Close ()
437357
438- service := & httpService {
439- Client : http .DefaultClient ,
440- url : server .URL ,
441- Tracer : otel .Tracer ("gofr-http-client" ),
442- Logger : logging .NewMockLogger (logging .INFO ),
443- }
358+ service := newService (t , server )
444359
445360 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
446361
447362 resp , err := service .Delete (t .Context (), "test-path" , []byte ("{Test Body}" ))
448363
449- if resp != nil {
450- defer resp .Body .Close ()
451- }
452-
453- require .NoError (t , err )
454- assert .NotNil (t , resp , "TEST, Failed." )
364+ validateResponse (t , resp , err , false )
455365}
456366
457367func TestHTTPService_DeleteWithHeaders (t * testing.T ) {
@@ -474,24 +384,14 @@ func TestHTTPService_DeleteWithHeaders(t *testing.T) {
474384 }))
475385 defer server .Close ()
476386
477- service := & httpService {
478- Client : http .DefaultClient ,
479- url : server .URL ,
480- Tracer : otel .Tracer ("gofr-http-client" ),
481- Logger : logging .NewMockLogger (logging .INFO ),
482- }
387+ service := newService (t , server )
483388
484389 // TODO : Nil Correlation ID is coming in logs, it has to be fixed
485390
486391 resp , err := service .DeleteWithHeaders (t .Context (), "test-path" , []byte ("{Test Body}" ),
487392 map [string ]string {"header1" : "value1" })
488393
489- if resp != nil {
490- defer resp .Body .Close ()
491- }
492-
493- require .NoError (t , err )
494- assert .NotNil (t , resp , "TEST, Failed." )
394+ validateResponse (t , resp , err , false )
495395}
496396
497397func TestHTTPService_createAndSendRequestCreateRequestFailure (t * testing.T ) {
@@ -507,12 +407,7 @@ func TestHTTPService_createAndSendRequestCreateRequestFailure(t *testing.T) {
507407 "!@#$" , "test-path" , map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }},
508408 []byte ("{Test Body}" ), map [string ]string {"header1" : "value1" })
509409
510- if resp != nil {
511- defer resp .Body .Close ()
512- }
513-
514- require .Error (t , err )
515- assert .Nil (t , resp , "TEST[%d], Failed.\n %s" )
410+ validateResponse (t , resp , err , true )
516411}
517412
518413func TestHTTPService_createAndSendRequestServerError (t * testing.T ) {
@@ -536,10 +431,34 @@ func TestHTTPService_createAndSendRequestServerError(t *testing.T) {
536431 http .MethodPost , "test-path" , map [string ]any {"key" : "value" , "name" : []string {"gofr" , "test" }},
537432 []byte ("{Test Body}" ), map [string ]string {"header1" : "value1" })
538433
434+ validateResponse (t , resp , err , true )
435+ }
436+
437+ func validateResponse (t * testing.T , resp * http.Response , err error , hasError bool ) {
438+ t .Helper ()
439+
539440 if resp != nil {
540441 defer resp .Body .Close ()
541442 }
542443
543- require .Error (t , err )
544- assert .Nil (t , resp , "TEST[%d], Failed.\n %s" )
444+ if hasError {
445+ require .Error (t , err )
446+ assert .Nil (t , resp , "TEST[%d], Failed.\n %s" )
447+
448+ return
449+ }
450+
451+ require .NoError (t , err )
452+ assert .NotNil (t , resp , "TEST[%d], Failed.\n %s" )
453+ }
454+
455+ func newService (t * testing.T , server * httptest.Server ) * httpService {
456+ t .Helper ()
457+
458+ return & httpService {
459+ Client : http .DefaultClient ,
460+ url : server .URL ,
461+ Tracer : otel .Tracer ("gofr-http-client" ),
462+ Logger : logging .NewMockLogger (logging .INFO ),
463+ }
545464}
0 commit comments