@@ -342,3 +342,77 @@ func TestSprintIssuesAdd(t *testing.T) {
342
342
err = client .SprintIssuesAdd ("5" , "TEST-1" )
343
343
assert .Error (t , & ErrUnexpectedResponse {}, err )
344
344
}
345
+
346
+ func TestGetSprint (t * testing.T ) {
347
+ var unexpectedStatusCode bool
348
+
349
+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
350
+ assert .Equal (t , "/rest/agile/1.0/sprint/5" , r .URL .Path )
351
+
352
+ if unexpectedStatusCode {
353
+ w .WriteHeader (400 )
354
+ } else {
355
+ assert .Equal (t , "GET" , r .Method )
356
+
357
+ resp , err := os .ReadFile ("./testdata/sprint-get.json" )
358
+ assert .NoError (t , err )
359
+
360
+ w .Header ().Set ("Content-Type" , "application/json" )
361
+ w .WriteHeader (200 )
362
+ _ , _ = w .Write (resp )
363
+ }
364
+ }))
365
+ defer server .Close ()
366
+
367
+ client := NewClient (Config {Server : server .URL }, WithTimeout (3 * time .Second ))
368
+
369
+ sprint , err := client .GetSprint (5 )
370
+ assert .NoError (t , err )
371
+ assert .Equal (t , sprint .ID , 5 )
372
+ assert .Equal (t , sprint .Status , "active" )
373
+
374
+ unexpectedStatusCode = true
375
+
376
+ _ , err = client .GetSprint (5 )
377
+ assert .Error (t , & ErrUnexpectedResponse {}, err )
378
+ }
379
+
380
+ func TestEndSprint (t * testing.T ) {
381
+ var unexpectedStatusCode bool
382
+
383
+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
384
+ assert .NotNilf (t , r .Method , "invalid request method" )
385
+
386
+ if r .Method == "GET" {
387
+ assert .Equal (t , "/rest/agile/1.0/sprint/5" , r .URL .Path )
388
+
389
+ resp , err := os .ReadFile ("./testdata/sprint-get.json" )
390
+ assert .NoError (t , err )
391
+
392
+ w .Header ().Set ("Content-Type" , "application/json" )
393
+ w .WriteHeader (200 )
394
+ _ , _ = w .Write (resp )
395
+ } else {
396
+ if unexpectedStatusCode {
397
+ w .WriteHeader (400 )
398
+ } else if r .Method == "PUT" {
399
+ assert .Equal (t , "PUT" , r .Method )
400
+ assert .Equal (t , "application/json" , r .Header .Get ("Accept" ))
401
+ assert .Equal (t , "application/json" , r .Header .Get ("Content-Type" ))
402
+
403
+ w .WriteHeader (200 )
404
+ }
405
+ }
406
+ }))
407
+ defer server .Close ()
408
+
409
+ client := NewClient (Config {Server : server .URL }, WithTimeout (3 * time .Second ))
410
+
411
+ err := client .EndSprint (5 )
412
+ assert .NoError (t , err )
413
+
414
+ unexpectedStatusCode = true
415
+
416
+ err = client .EndSprint (5 )
417
+ assert .Error (t , & ErrUnexpectedResponse {}, err )
418
+ }
0 commit comments