Skip to content

Commit 5279775

Browse files
committed
testservertests
1 parent 161a1b5 commit 5279775

File tree

3 files changed

+249
-147
lines changed

3 files changed

+249
-147
lines changed

src/Hosting/TestHost/test/TestClientTests.cs

Lines changed: 148 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ public async Task LargePayload_DisposesRequest_AfterResponseIsCompleted()
188188
data[i] = character[0];
189189
}
190190

191-
#pragma warning disable CS0618 // Type or member is obsolete
192-
var builder = new WebHostBuilder();
193191
RequestDelegate app = async ctx =>
194192
{
195193
var disposable = new TestDisposable();
@@ -201,9 +199,17 @@ public async Task LargePayload_DisposesRequest_AfterResponseIsCompleted()
201199
await ctx.Response.Body.WriteAsync(data, 1024, 1024);
202200
};
203201

204-
builder.Configure(appBuilder => appBuilder.Run(app));
205-
var server = new TestServer(builder);
206-
#pragma warning restore CS0618 // Type or member is obsolete
202+
var builder = new HostBuilder()
203+
.ConfigureWebHost(webBuilder =>
204+
{
205+
webBuilder
206+
.UseTestServer()
207+
.Configure(appBuilder => appBuilder.Run(app));
208+
});
209+
using var host = builder.Build();
210+
await host.StartAsync();
211+
212+
var server = host.GetTestServer();
207213
var client = server.CreateClient();
208214

209215
// Act & Assert
@@ -728,18 +734,25 @@ public async Task WebSocketWorks()
728734
}
729735
}
730736
};
731-
#pragma warning disable CS0618 // Type or member is obsolete
732-
var builder = new WebHostBuilder()
733-
.ConfigureServices(services =>
734-
{
735-
services.AddSingleton<ILogger<IWebHost>>(logger);
736-
})
737-
.Configure(app =>
737+
738+
var builder = new HostBuilder()
739+
.ConfigureWebHost(webHostBuilder =>
738740
{
739-
app.Run(appDelegate);
741+
webHostBuilder
742+
.UseTestServer()
743+
.ConfigureServices(services =>
744+
{
745+
services.AddSingleton<ILogger<IWebHost>>(logger);
746+
})
747+
.Configure(app =>
748+
{
749+
app.Run(appDelegate);
750+
});
740751
});
741-
var server = new TestServer(builder);
742-
#pragma warning restore CS0618 // Type or member is obsolete
752+
using var host = builder.Build();
753+
754+
await host.StartAsync();
755+
var server = host.GetTestServer();
743756

744757
// Act
745758
var client = server.CreateWebSocketClient();
@@ -800,13 +813,18 @@ public async Task WebSocketSubProtocolsWorks()
800813
}
801814
}
802815
};
803-
#pragma warning disable CS0618 // Type or member is obsolete
804-
var builder = new WebHostBuilder()
805-
.Configure(app =>
816+
817+
var builder = new HostBuilder()
818+
.ConfigureWebHost(webHostBuilder =>
806819
{
807-
app.Run(appDelegate);
820+
webHostBuilder
821+
.UseTestServer()
822+
.Configure(app => app.Run(appDelegate));
808823
});
809-
var server = new TestServer(builder);
824+
using var host = builder.Build();
825+
await host.StartAsync();
826+
827+
var server = host.GetTestServer();
810828
#pragma warning restore CS0618 // Type or member is obsolete
811829

812830
// Act
@@ -854,12 +872,19 @@ public async Task WebSocketAcceptThrowsWhenCancelled()
854872
}
855873
}
856874
};
857-
#pragma warning disable CS0618 // Type or member is obsolete
858-
var builder = new WebHostBuilder()
859-
.ConfigureServices(services => services.AddSingleton<ILogger<IWebHost>>(logger))
860-
.Configure(app => app.Run(appDelegate));
861-
var server = new TestServer(builder);
862-
#pragma warning restore CS0618 // Type or member is obsolete
875+
876+
var builder = new HostBuilder()
877+
.ConfigureWebHost(webHostBuilder =>
878+
{
879+
webHostBuilder
880+
.UseTestServer()
881+
.ConfigureServices(services => services.AddSingleton<ILogger<IWebHost>>(logger))
882+
.Configure(app => app.Run(appDelegate));
883+
});
884+
using var host = builder.Build();
885+
await host.StartAsync();
886+
887+
var server = host.GetTestServer();
863888

864889
// Act
865890
var client = server.CreateWebSocketClient();
@@ -899,13 +924,18 @@ public async Task WebSocketDisposalThrowsOnPeer()
899924
websocket.Dispose();
900925
}
901926
};
902-
#pragma warning disable CS0618 // Type or member is obsolete
903-
var builder = new WebHostBuilder().Configure(app =>
904-
{
905-
app.Run(appDelegate);
906-
});
907-
var server = new TestServer(builder);
908-
#pragma warning restore CS0618 // Type or member is obsolete
927+
928+
var builder = new HostBuilder()
929+
.ConfigureWebHost(webHostBuilder =>
930+
{
931+
webHostBuilder
932+
.UseTestServer()
933+
.Configure(app => app.Run(appDelegate));
934+
});
935+
using var host = builder.Build();
936+
await host.StartAsync();
937+
938+
var server = host.GetTestServer();
909939

910940
// Act
911941
var client = server.CreateWebSocketClient();
@@ -934,13 +964,18 @@ public async Task WebSocketTinyReceiveGeneratesEndOfMessage()
934964
}
935965
}
936966
};
937-
#pragma warning disable CS0618 // Type or member is obsolete
938-
var builder = new WebHostBuilder().Configure(app =>
939-
{
940-
app.Run(appDelegate);
941-
});
942-
var server = new TestServer(builder);
943-
#pragma warning restore CS0618 // Type or member is obsolete
967+
968+
var builder = new HostBuilder()
969+
.ConfigureWebHost(webHostBuilder =>
970+
{
971+
webHostBuilder
972+
.UseTestServer()
973+
.Configure(app => app.Run(appDelegate));
974+
});
975+
using var host = builder.Build();
976+
await host.StartAsync();
977+
978+
var server = host.GetTestServer();
944979

945980
// Act
946981
var client = server.CreateWebSocketClient();
@@ -1010,23 +1045,31 @@ public async Task ClientDisposalAbortsRequest()
10101045
public async Task ClientCancellationAbortsRequest()
10111046
{
10121047
var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
1013-
#pragma warning disable CS0618 // Type or member is obsolete
1014-
var builder = new WebHostBuilder().Configure(app => app.Run(async ctx =>
1015-
{
1016-
try
1017-
{
1018-
await Task.Delay(TimeSpan.FromSeconds(30), ctx.RequestAborted);
1019-
tcs.SetResult();
1020-
}
1021-
catch (Exception e)
1048+
1049+
var builder = new HostBuilder()
1050+
.ConfigureWebHost(webHostBuilder =>
10221051
{
1023-
tcs.SetException(e);
1024-
return;
1025-
}
1026-
throw new InvalidOperationException("The request was not aborted");
1027-
}));
1028-
using var server = new TestServer(builder);
1029-
#pragma warning restore CS0618 // Type or member is obsolete
1052+
webHostBuilder
1053+
.UseTestServer()
1054+
.Configure(app => app.Run(async ctx =>
1055+
{
1056+
try
1057+
{
1058+
await Task.Delay(TimeSpan.FromSeconds(30), ctx.RequestAborted);
1059+
tcs.SetResult();
1060+
}
1061+
catch (Exception e)
1062+
{
1063+
tcs.SetException(e);
1064+
return;
1065+
}
1066+
throw new InvalidOperationException("The request was not aborted");
1067+
}));
1068+
});
1069+
using var host = builder.Build();
1070+
await host.StartAsync();
1071+
1072+
using var server = host.GetTestServer();
10301073
using var client = server.CreateClient();
10311074
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(1));
10321075
var response = await Assert.ThrowsAnyAsync<OperationCanceledException>(() => client.GetAsync("http://localhost:12345", cts.Token));
@@ -1042,18 +1085,25 @@ public async Task AsyncLocalValueOnClientIsNotPreserved()
10421085
asyncLocal.Value = value;
10431086

10441087
object capturedValue = null;
1045-
#pragma warning disable CS0618 // Type or member is obsolete
1046-
var builder = new WebHostBuilder()
1047-
.Configure(app =>
1088+
1089+
var builder = new HostBuilder()
1090+
.ConfigureWebHost(webHostBuilder =>
10481091
{
1049-
app.Run((context) =>
1050-
{
1051-
capturedValue = asyncLocal.Value;
1052-
return context.Response.WriteAsync("Done");
1053-
});
1092+
webHostBuilder
1093+
.UseTestServer()
1094+
.Configure(app =>
1095+
{
1096+
app.Run((context) =>
1097+
{
1098+
capturedValue = asyncLocal.Value;
1099+
return context.Response.WriteAsync("Done");
1100+
});
1101+
});
10541102
});
1055-
var server = new TestServer(builder);
1056-
#pragma warning restore CS0618 // Type or member is obsolete
1103+
using var host = builder.Build();
1104+
await host.StartAsync();
1105+
1106+
var server = host.GetTestServer();
10571107
var client = server.CreateClient();
10581108

10591109
var resp = await client.GetAsync("/");
@@ -1069,21 +1119,28 @@ public async Task AsyncLocalValueOnClientIsPreservedIfPreserveExecutionContextIs
10691119
asyncLocal.Value = value;
10701120

10711121
object capturedValue = null;
1072-
#pragma warning disable CS0618 // Type or member is obsolete
1073-
var builder = new WebHostBuilder()
1074-
.Configure(app =>
1122+
1123+
var builder = new HostBuilder()
1124+
.ConfigureWebHost(webHostBuilder =>
10751125
{
1076-
app.Run((context) =>
1077-
{
1078-
capturedValue = asyncLocal.Value;
1079-
return context.Response.WriteAsync("Done");
1080-
});
1126+
webHostBuilder
1127+
.UseTestServer(o =>
1128+
{
1129+
o.PreserveExecutionContext = true;
1130+
})
1131+
.Configure(app =>
1132+
{
1133+
app.Run((context) =>
1134+
{
1135+
capturedValue = asyncLocal.Value;
1136+
return context.Response.WriteAsync("Done");
1137+
});
1138+
});
10811139
});
1082-
var server = new TestServer(builder)
1083-
{
1084-
PreserveExecutionContext = true
1085-
};
1086-
#pragma warning restore CS0618 // Type or member is obsolete
1140+
using var host = builder.Build();
1141+
await host.StartAsync();
1142+
1143+
var server = host.GetTestServer();
10871144
var client = server.CreateClient();
10881145

10891146
var resp = await client.GetAsync("/");
@@ -1204,8 +1261,10 @@ public async Task SendAsync_ExplicitlySet_Protocol30()
12041261
[Fact]
12051262
public async Task VerifyWebSocketAndUpgradeFeaturesForNonWebSocket()
12061263
{
1207-
#pragma warning disable CS0618 // Type or member is obsolete
1208-
using (var testServer = new TestServer(new WebHostBuilder()
1264+
var builder = new HostBuilder()
1265+
.ConfigureWebHost(webHostBuilder =>
1266+
webHostBuilder
1267+
.UseTestServer()
12091268
.Configure(app =>
12101269
{
12111270
app.UseWebSockets();
@@ -1223,13 +1282,14 @@ public async Task VerifyWebSocketAndUpgradeFeaturesForNonWebSocket()
12231282

12241283
await c.Response.WriteAsync("test");
12251284
});
1226-
})))
1227-
#pragma warning restore CS0618 // Type or member is obsolete
1228-
{
1229-
var client = testServer.CreateClient();
1285+
}));
1286+
using var host = builder.Build();
1287+
await host.StartAsync();
12301288

1231-
var actual = await client.GetStringAsync("http://localhost:12345/");
1232-
Assert.Equal("test", actual);
1233-
}
1289+
var testServer = host.GetTestServer();
1290+
var client = testServer.CreateClient();
1291+
1292+
var actual = await client.GetStringAsync("http://localhost:12345/");
1293+
Assert.Equal("test", actual);
12341294
}
12351295
}

0 commit comments

Comments
 (0)