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