@@ -318,5 +318,177 @@ public void InvalidHostShouldYieldError()
318318                    Format  =  OpenApiConstants . Yaml 
319319                } ,  result . Diagnostic ) ; 
320320        } 
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+         } 
321493    } 
322494} 
0 commit comments