@@ -7009,5 +7009,79 @@ public async Task WhenCurrentUserIsAuthenticatedOwner_ReturnsOK(bool multiFactor
70097009 Assert . Equal ( ( int ) HttpStatusCode . OK , controller . Response . StatusCode ) ;
70107010 }
70117011 }
7012+
7013+ public class ThePreviewReadMeMethod : TestContainer
7014+ {
7015+ [ Fact ]
7016+ public async Task ReturnsProperResponseModelWhenSucceeds ( )
7017+ {
7018+ var readmeService = new Mock < IReadMeService > ( ) ;
7019+ var controller = CreateController ( GetConfigurationService ( ) ,
7020+ readMeService : readmeService . Object ) ;
7021+
7022+ var request = new ReadMeRequest ( ) ;
7023+
7024+ readmeService
7025+ . Setup ( rs => rs . HasReadMeSource ( request ) )
7026+ . Returns ( true ) ;
7027+
7028+ const string html = "some HTML" ;
7029+
7030+ readmeService
7031+ . Setup ( rs => rs . GetReadMeHtmlAsync ( request , It . IsAny < Encoding > ( ) ) )
7032+ . ReturnsAsync ( html ) ;
7033+
7034+ var result = await controller . PreviewReadMe ( request ) ;
7035+
7036+ var stringArray = Assert . IsType < string [ ] > ( result . Data ) ;
7037+ Assert . Single ( stringArray ) ;
7038+ Assert . Equal ( html , stringArray [ 0 ] ) ;
7039+ }
7040+
7041+ [ Fact ]
7042+ public async Task ReturnsProperResponseModelWhenNoReadme ( )
7043+ {
7044+ var readmeService = new Mock < IReadMeService > ( ) ;
7045+ var controller = CreateController ( GetConfigurationService ( ) ,
7046+ readMeService : readmeService . Object ) ;
7047+
7048+ var request = new ReadMeRequest ( ) ;
7049+
7050+ readmeService
7051+ . Setup ( rs => rs . HasReadMeSource ( request ) )
7052+ . Returns ( false ) ;
7053+
7054+ var result = await controller . PreviewReadMe ( request ) ;
7055+
7056+ var stringArray = Assert . IsType < string [ ] > ( result . Data ) ;
7057+ Assert . Single ( stringArray ) ;
7058+ Assert . Equal ( "There is no Markdown Documentation available to preview." , stringArray [ 0 ] ) ;
7059+ }
7060+
7061+ [ Fact ]
7062+ public async Task ReturnsProperResponseModelWhenConversionFails ( )
7063+ {
7064+ var readmeService = new Mock < IReadMeService > ( ) ;
7065+ var controller = CreateController ( GetConfigurationService ( ) ,
7066+ readMeService : readmeService . Object ) ;
7067+
7068+ var request = new ReadMeRequest ( ) ;
7069+
7070+ readmeService
7071+ . Setup ( rs => rs . HasReadMeSource ( request ) )
7072+ . Returns ( true ) ;
7073+
7074+ const string exceptionMessage = "failure" ;
7075+ readmeService
7076+ . Setup ( rs => rs . GetReadMeHtmlAsync ( request , It . IsAny < Encoding > ( ) ) )
7077+ . ThrowsAsync ( new Exception ( exceptionMessage ) ) ;
7078+
7079+ var result = await controller . PreviewReadMe ( request ) ;
7080+
7081+ var stringArray = Assert . IsType < string [ ] > ( result . Data ) ;
7082+ Assert . Single ( stringArray ) ;
7083+ Assert . Contains ( exceptionMessage , stringArray [ 0 ] ) ;
7084+ }
7085+ }
70127086 }
70137087}
0 commit comments