Skip to content

Commit 7d450bb

Browse files
OpenAPI Flaky fix (#20383)
Don't use network in tests unless we have to
1 parent bc140e8 commit 7d450bb

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

src/Tools/Microsoft.dotnet-openapi/test/OpenApiAddURLTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ public async Task OpenAPi_Add_URL_InvalidUrl()
424424
{
425425
var project = CreateBasicProject(withOpenApi: false);
426426

427-
var app = GetApplication(realHttp: true);
427+
var app = GetApplication();
428428
var url = BrokenUrl;
429429
var run = app.Execute(new[] { "add", "url", url });
430430

src/Tools/Microsoft.dotnet-openapi/test/OpenApiTestBase.cs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ private IDictionary<string, Tuple<string, ContentDispositionHeaderValue>> Downlo
106106
{ PackageUrl, Tuple.Create<string, ContentDispositionHeaderValue>(PackageUrlContent, null) },
107107
{ NoDispositionUrl, Tuple.Create<string, ContentDispositionHeaderValue>(Content, null) },
108108
{ NoExtensionUrl, Tuple.Create(Content, noExtension) },
109-
{ NoSegmentUrl, Tuple.Create(Content, justAttachments) }
109+
{ NoSegmentUrl, Tuple.Create(Content, justAttachments) },
110+
{ BrokenUrl, null }
110111
};
111112
}
112113

@@ -139,10 +140,14 @@ public void Dispose()
139140
public Task<IHttpResponseMessageWrapper> GetResponseAsync(string url)
140141
{
141142
var result = _results[url];
142-
byte[] byteArray = Encoding.ASCII.GetBytes(result.Item1);
143-
var stream = new MemoryStream(byteArray);
143+
MemoryStream stream = null;
144+
if(result != null)
145+
{
146+
byte[] byteArray = Encoding.ASCII.GetBytes(result.Item1);
147+
stream = new MemoryStream(byteArray);
148+
}
144149

145-
return Task.FromResult<IHttpResponseMessageWrapper>(new TestHttpResponseMessageWrapper(stream, result.Item2));
150+
return Task.FromResult<IHttpResponseMessageWrapper>(new TestHttpResponseMessageWrapper(stream, result?.Item2));
146151
}
147152
}
148153

@@ -154,7 +159,17 @@ public class TestHttpResponseMessageWrapper : IHttpResponseMessageWrapper
154159

155160
public bool IsSuccessCode()
156161
{
157-
return true;
162+
switch(StatusCode)
163+
{
164+
case HttpStatusCode.OK:
165+
case HttpStatusCode.Created:
166+
case HttpStatusCode.NoContent:
167+
case HttpStatusCode.Accepted:
168+
return true;
169+
case HttpStatusCode.NotFound:
170+
default:
171+
return false;
172+
}
158173
}
159174

160175
private readonly ContentDispositionHeaderValue _contentDisposition;
@@ -164,6 +179,10 @@ public TestHttpResponseMessageWrapper(
164179
ContentDispositionHeaderValue header)
165180
{
166181
Stream = Task.FromResult<Stream>(stream);
182+
if (header is null && stream is null)
183+
{
184+
StatusCode = HttpStatusCode.NotFound;
185+
}
167186
_contentDisposition = header;
168187
}
169188

0 commit comments

Comments
 (0)