From 7d450bba80675838691f1a614acff21a969c135e Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Wed, 1 Apr 2020 12:52:33 -0700 Subject: [PATCH] OpenAPI Flaky fix (#20383) Don't use network in tests unless we have to --- .../test/OpenApiAddURLTests.cs | 2 +- .../test/OpenApiTestBase.cs | 29 +++++++++++++++---- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Tools/Microsoft.dotnet-openapi/test/OpenApiAddURLTests.cs b/src/Tools/Microsoft.dotnet-openapi/test/OpenApiAddURLTests.cs index d5fa7c9f50..1abb14ed7b 100644 --- a/src/Tools/Microsoft.dotnet-openapi/test/OpenApiAddURLTests.cs +++ b/src/Tools/Microsoft.dotnet-openapi/test/OpenApiAddURLTests.cs @@ -424,7 +424,7 @@ namespace Microsoft.DotNet.OpenApi.Add.Tests { var project = CreateBasicProject(withOpenApi: false); - var app = GetApplication(realHttp: true); + var app = GetApplication(); var url = BrokenUrl; var run = app.Execute(new[] { "add", "url", url }); diff --git a/src/Tools/Microsoft.dotnet-openapi/test/OpenApiTestBase.cs b/src/Tools/Microsoft.dotnet-openapi/test/OpenApiTestBase.cs index fb228eeb96..b8bf1cb8c3 100644 --- a/src/Tools/Microsoft.dotnet-openapi/test/OpenApiTestBase.cs +++ b/src/Tools/Microsoft.dotnet-openapi/test/OpenApiTestBase.cs @@ -106,7 +106,8 @@ namespace Microsoft.DotNet.OpenApi.Tests { PackageUrl, Tuple.Create(PackageUrlContent, null) }, { NoDispositionUrl, Tuple.Create(Content, null) }, { NoExtensionUrl, Tuple.Create(Content, noExtension) }, - { NoSegmentUrl, Tuple.Create(Content, justAttachments) } + { NoSegmentUrl, Tuple.Create(Content, justAttachments) }, + { BrokenUrl, null } }; } @@ -139,10 +140,14 @@ namespace Microsoft.DotNet.OpenApi.Tests public Task GetResponseAsync(string url) { var result = _results[url]; - byte[] byteArray = Encoding.ASCII.GetBytes(result.Item1); - var stream = new MemoryStream(byteArray); + MemoryStream stream = null; + if(result != null) + { + byte[] byteArray = Encoding.ASCII.GetBytes(result.Item1); + stream = new MemoryStream(byteArray); + } - return Task.FromResult(new TestHttpResponseMessageWrapper(stream, result.Item2)); + return Task.FromResult(new TestHttpResponseMessageWrapper(stream, result?.Item2)); } } @@ -154,7 +159,17 @@ namespace Microsoft.DotNet.OpenApi.Tests public bool IsSuccessCode() { - return true; + switch(StatusCode) + { + case HttpStatusCode.OK: + case HttpStatusCode.Created: + case HttpStatusCode.NoContent: + case HttpStatusCode.Accepted: + return true; + case HttpStatusCode.NotFound: + default: + return false; + } } private readonly ContentDispositionHeaderValue _contentDisposition; @@ -164,6 +179,10 @@ namespace Microsoft.DotNet.OpenApi.Tests ContentDispositionHeaderValue header) { Stream = Task.FromResult(stream); + if (header is null && stream is null) + { + StatusCode = HttpStatusCode.NotFound; + } _contentDisposition = header; }