@@ -318,5 +318,177 @@ public void InvalidHostShouldYieldError()
318
318
Format = OpenApiConstants . Yaml
319
319
} , result . Diagnostic ) ;
320
320
}
321
+
322
+ [ Fact ]
323
+ public void BaseUrlWithPortShouldPreservePort ( )
324
+ {
325
+ var input =
326
+ """
327
+ swagger: 2.0
328
+ info:
329
+ title: test
330
+ version: 1.0.0
331
+ paths: {}
332
+ """ ;
333
+ var settings = new OpenApiReaderSettings
334
+ {
335
+ BaseUrl = new ( "http://demo.testfire.net:8080" )
336
+ } ;
337
+ settings . AddYamlReader ( ) ;
338
+
339
+ var result = OpenApiDocument . Parse ( input , "yaml" , settings ) ;
340
+
341
+ var server = result . Document . Servers . First ( ) ;
342
+ Assert . Single ( result . Document . Servers ) ;
343
+ Assert . Equal ( "http://demo.testfire.net:8080" , server . Url ) ;
344
+ }
345
+
346
+ [ Fact ]
347
+ public void BaseUrlWithPortAndPathShouldPreservePort ( )
348
+ {
349
+ var input =
350
+ """
351
+ swagger: 2.0
352
+ info:
353
+ title: test
354
+ version: 1.0.0
355
+ paths: {}
356
+ """ ;
357
+ var settings = new OpenApiReaderSettings
358
+ {
359
+ BaseUrl = new ( "http://demo.testfire.net:8080/swagger/properties.json" )
360
+ } ;
361
+ settings . AddYamlReader ( ) ;
362
+
363
+ var result = OpenApiDocument . Parse ( input , "yaml" , settings ) ;
364
+
365
+ var server = result . Document . Servers . First ( ) ;
366
+ Assert . Single ( result . Document . Servers ) ;
367
+ Assert . Equal ( "http://demo.testfire.net:8080/swagger/properties.json" , server . Url ) ;
368
+ }
369
+
370
+ [ Fact ]
371
+ public void BaseUrlWithNonStandardPortShouldPreservePort ( )
372
+ {
373
+ var input =
374
+ """
375
+ swagger: 2.0
376
+ info:
377
+ title: test
378
+ version: 1.0.0
379
+ paths: {}
380
+ """ ;
381
+ var settings = new OpenApiReaderSettings
382
+ {
383
+ BaseUrl = new ( "https://api.example.com:9443/v1/openapi.yaml" )
384
+ } ;
385
+ settings . AddYamlReader ( ) ;
386
+
387
+ var result = OpenApiDocument . Parse ( input , "yaml" , settings ) ;
388
+
389
+ var server = result . Document . Servers . First ( ) ;
390
+ Assert . Single ( result . Document . Servers ) ;
391
+ Assert . Equal ( "https://api.example.com:9443/v1/openapi.yaml" , server . Url ) ;
392
+ }
393
+
394
+ [ Fact ]
395
+ public void BaseUrlWithStandardHttpsPortShouldRemovePort ( )
396
+ {
397
+ var input =
398
+ """
399
+ swagger: 2.0
400
+ info:
401
+ title: test
402
+ version: 1.0.0
403
+ paths: {}
404
+ """ ;
405
+ var settings = new OpenApiReaderSettings
406
+ {
407
+ BaseUrl = new ( "https://foo.bar:443/api" )
408
+ } ;
409
+ settings . AddYamlReader ( ) ;
410
+
411
+ var result = OpenApiDocument . Parse ( input , "yaml" , settings ) ;
412
+
413
+ var server = result . Document . Servers . First ( ) ;
414
+ Assert . Single ( result . Document . Servers ) ;
415
+ Assert . Equal ( "https://foo.bar/api" , server . Url ) ;
416
+ }
417
+
418
+ [ Fact ]
419
+ public void BaseUrlWithStandardHttpPortShouldRemovePort ( )
420
+ {
421
+ var input =
422
+ """
423
+ swagger: 2.0
424
+ info:
425
+ title: test
426
+ version: 1.0.0
427
+ paths: {}
428
+ """ ;
429
+ var settings = new OpenApiReaderSettings
430
+ {
431
+ BaseUrl = new ( "http://foo.bar:80/api" )
432
+ } ;
433
+ settings . AddYamlReader ( ) ;
434
+
435
+ var result = OpenApiDocument . Parse ( input , "yaml" , settings ) ;
436
+
437
+ var server = result . Document . Servers . First ( ) ;
438
+ Assert . Single ( result . Document . Servers ) ;
439
+ Assert . Equal ( "http://foo.bar/api" , server . Url ) ;
440
+ }
441
+
442
+ [ Fact ]
443
+ public void HostWithStandardHttpsPortShouldRemovePort ( )
444
+ {
445
+ var input =
446
+ """
447
+ swagger: 2.0
448
+ info:
449
+ title: test
450
+ version: 1.0.0
451
+ host: foo.bar:443
452
+ schemes:
453
+ - https
454
+ paths: {}
455
+ """ ;
456
+ var settings = new OpenApiReaderSettings
457
+ {
458
+ } ;
459
+ settings . AddYamlReader ( ) ;
460
+
461
+ var result = OpenApiDocument . Parse ( input , "yaml" , settings ) ;
462
+
463
+ var server = result . Document . Servers . First ( ) ;
464
+ Assert . Single ( result . Document . Servers ) ;
465
+ Assert . Equal ( "https://foo.bar" , server . Url ) ;
466
+ }
467
+
468
+ [ Fact ]
469
+ public void HostWithStandardHttpPortShouldRemovePort ( )
470
+ {
471
+ var input =
472
+ """
473
+ swagger: 2.0
474
+ info:
475
+ title: test
476
+ version: 1.0.0
477
+ host: foo.bar:80
478
+ schemes:
479
+ - http
480
+ paths: {}
481
+ """ ;
482
+ var settings = new OpenApiReaderSettings
483
+ {
484
+ } ;
485
+ settings . AddYamlReader ( ) ;
486
+
487
+ var result = OpenApiDocument . Parse ( input , "yaml" , settings ) ;
488
+
489
+ var server = result . Document . Servers . First ( ) ;
490
+ Assert . Single ( result . Document . Servers ) ;
491
+ Assert . Equal ( "http://foo.bar" , server . Url ) ;
492
+ }
321
493
}
322
494
}
0 commit comments