public void DocumentProvider_ExposesAllDocumentNames(Type startupType, string[] expectedNames) { var testSite = new TestSite(startupType); var server = testSite.BuildServer(); var services = server.Host.Services; var documentProvider = (IDocumentProvider)services.GetService(typeof(IDocumentProvider)); var documentNames = documentProvider.GetDocumentNames(); Assert.Equal(expectedNames, documentNames); }
public async Task DocumentProvider_ThrowsUnknownDocument_IfUnknownDocumentName() { var testSite = new TestSite(typeof(Basic.Startup)); var server = testSite.BuildServer(); var services = server.Host.Services; var documentProvider = (IDocumentProvider)services.GetService(typeof(IDocumentProvider)); using (var writer = new StringWriter()) { await Assert.ThrowsAsync <UnknownSwaggerDocument>( () => documentProvider.GenerateAsync("NotADocument", writer)); } }
public async Task DocumentProvider_ExposesGeneratedSwagger(Type startupType, string documentName) { var testSite = new TestSite(startupType); var server = testSite.BuildServer(); var services = server.Host.Services; var documentProvider = (IDocumentProvider)services.GetService(typeof(IDocumentProvider)); using (var stream = new MemoryStream()) { using (var writer = new StreamWriter(stream, Encoding.UTF8, bufferSize: 2048, leaveOpen: true)) { await documentProvider.GenerateAsync(documentName, writer); await writer.FlushAsync(); } stream.Position = 0L; new OpenApiStreamReader().Read(stream, out var diagnostic); Assert.NotNull(diagnostic); Assert.Empty(diagnostic.Errors); } }