OpenAPI Flaky fix (#20383)

Don't use network in tests unless we have to
This commit is contained in:
Ryan Brandenburg 2020-04-01 12:52:33 -07:00 committed by GitHub
parent bc140e8722
commit 7d450bba80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 6 deletions

View File

@ -424,7 +424,7 @@ namespace Microsoft.DotNet.OpenApi.Add.Tests
{ {
var project = CreateBasicProject(withOpenApi: false); var project = CreateBasicProject(withOpenApi: false);
var app = GetApplication(realHttp: true); var app = GetApplication();
var url = BrokenUrl; var url = BrokenUrl;
var run = app.Execute(new[] { "add", "url", url }); var run = app.Execute(new[] { "add", "url", url });

View File

@ -106,7 +106,8 @@ namespace Microsoft.DotNet.OpenApi.Tests
{ PackageUrl, Tuple.Create<string, ContentDispositionHeaderValue>(PackageUrlContent, null) }, { PackageUrl, Tuple.Create<string, ContentDispositionHeaderValue>(PackageUrlContent, null) },
{ NoDispositionUrl, Tuple.Create<string, ContentDispositionHeaderValue>(Content, null) }, { NoDispositionUrl, Tuple.Create<string, ContentDispositionHeaderValue>(Content, null) },
{ NoExtensionUrl, Tuple.Create(Content, noExtension) }, { 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<IHttpResponseMessageWrapper> GetResponseAsync(string url) public Task<IHttpResponseMessageWrapper> GetResponseAsync(string url)
{ {
var result = _results[url]; var result = _results[url];
byte[] byteArray = Encoding.ASCII.GetBytes(result.Item1); MemoryStream stream = null;
var stream = new MemoryStream(byteArray); if(result != null)
{
byte[] byteArray = Encoding.ASCII.GetBytes(result.Item1);
stream = new MemoryStream(byteArray);
}
return Task.FromResult<IHttpResponseMessageWrapper>(new TestHttpResponseMessageWrapper(stream, result.Item2)); return Task.FromResult<IHttpResponseMessageWrapper>(new TestHttpResponseMessageWrapper(stream, result?.Item2));
} }
} }
@ -154,7 +159,17 @@ namespace Microsoft.DotNet.OpenApi.Tests
public bool IsSuccessCode() 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; private readonly ContentDispositionHeaderValue _contentDisposition;
@ -164,6 +179,10 @@ namespace Microsoft.DotNet.OpenApi.Tests
ContentDispositionHeaderValue header) ContentDispositionHeaderValue header)
{ {
Stream = Task.FromResult<Stream>(stream); Stream = Task.FromResult<Stream>(stream);
if (header is null && stream is null)
{
StatusCode = HttpStatusCode.NotFound;
}
_contentDisposition = header; _contentDisposition = header;
} }