Skip to content

Commit 03d1c86

Browse files
committed
Capture network traffic during testruns
1 parent c29a2e6 commit 03d1c86

File tree

8 files changed

+121
-111
lines changed

8 files changed

+121
-111
lines changed

test/OpenApiNSwagEndToEndTests/Headers/ETagTests.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,20 @@
77
using OpenApiTests.Headers;
88
using TestBuildingBlocks;
99
using Xunit;
10+
using Xunit.Abstractions;
1011

1112
namespace OpenApiNSwagEndToEndTests.Headers;
1213

1314
public sealed class ETagTests : IClassFixture<IntegrationTestContext<OpenApiStartup<HeadersDbContext>, HeadersDbContext>>
1415
{
1516
private readonly IntegrationTestContext<OpenApiStartup<HeadersDbContext>, HeadersDbContext> _testContext;
17+
private readonly XUnitLogHttpMessageHandler _logHttpMessageHandler;
1618
private readonly HeaderFakers _fakers = new();
1719

18-
public ETagTests(IntegrationTestContext<OpenApiStartup<HeadersDbContext>, HeadersDbContext> testContext)
20+
public ETagTests(IntegrationTestContext<OpenApiStartup<HeadersDbContext>, HeadersDbContext> testContext, ITestOutputHelper testOutputHelper)
1921
{
2022
_testContext = testContext;
23+
_logHttpMessageHandler = new XUnitLogHttpMessageHandler(testOutputHelper);
2124

2225
testContext.UseController<CountriesController>();
2326
}
@@ -35,7 +38,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
3538
await dbContext.SaveChangesAsync();
3639
});
3740

38-
using HttpClient httpClient = _testContext.Factory.CreateClient();
41+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
3942
var apiClient = new HeadersClient(httpClient);
4043

4144
// Act
@@ -60,7 +63,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
6063
await dbContext.SaveChangesAsync();
6164
});
6265

63-
using HttpClient httpClient = _testContext.Factory.CreateClient();
66+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
6467
var apiClient = new HeadersClient(httpClient);
6568

6669
// Act
@@ -78,7 +81,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
7881
public async Task Returns_no_ETag_for_failed_GET_request()
7982
{
8083
// Arrange
81-
using HttpClient httpClient = _testContext.Factory.CreateClient();
84+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
8285
var apiClient = new HeadersClient(httpClient);
8386

8487
// Act
@@ -97,7 +100,7 @@ public async Task Returns_no_ETag_for_POST_request()
97100
// Arrange
98101
Country newCountry = _fakers.Country.Generate();
99102

100-
using HttpClient httpClient = _testContext.Factory.CreateClient();
103+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
101104
var apiClient = new HeadersClient(httpClient);
102105

103106
// Act
@@ -135,7 +138,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
135138
await dbContext.SaveChangesAsync();
136139
});
137140

138-
using HttpClient httpClient = _testContext.Factory.CreateClient();
141+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
139142
var apiClient = new HeadersClient(httpClient);
140143

141144
ApiResponse<CountryCollectionResponseDocument?> response1 = await ApiResponse.TranslateAsync(() => apiClient.GetCountryCollectionAsync(null, null));
@@ -167,7 +170,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
167170
await dbContext.SaveChangesAsync();
168171
});
169172

170-
using HttpClient httpClient = _testContext.Factory.CreateClient();
173+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
171174
var apiClient = new HeadersClient(httpClient);
172175

173176
// Act

test/OpenApiNSwagEndToEndTests/QueryStrings/FilterTests.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ namespace OpenApiNSwagEndToEndTests.QueryStrings;
1313
public sealed class FilterTests : IClassFixture<IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext>>
1414
{
1515
private readonly IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext> _testContext;
16-
private readonly ITestOutputHelper _testOutputHelper;
16+
private readonly XUnitLogHttpMessageHandler _logHttpMessageHandler;
1717
private readonly QueryStringFakers _fakers = new();
1818

1919
public FilterTests(IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext> testContext, ITestOutputHelper testOutputHelper)
2020
{
2121
_testContext = testContext;
22-
_testOutputHelper = testOutputHelper;
22+
_logHttpMessageHandler = new XUnitLogHttpMessageHandler(testOutputHelper);
2323

2424
testContext.UseController<NodesController>();
2525
}
@@ -39,8 +39,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
3939
await dbContext.SaveChangesAsync();
4040
});
4141

42-
using HttpClient httpClient = _testContext.Factory.CreateClient();
43-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
42+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
43+
var apiClient = new QueryStringsClient(httpClient);
4444

4545
var queryString = new Dictionary<string, string?>
4646
{
@@ -75,8 +75,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
7575
await dbContext.SaveChangesAsync();
7676
});
7777

78-
using HttpClient httpClient = _testContext.Factory.CreateClient();
79-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
78+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
79+
var apiClient = new QueryStringsClient(httpClient);
8080

8181
var queryString = new Dictionary<string, string?>
8282
{
@@ -111,8 +111,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
111111
await dbContext.SaveChangesAsync();
112112
});
113113

114-
using HttpClient httpClient = _testContext.Factory.CreateClient();
115-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
114+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
115+
var apiClient = new QueryStringsClient(httpClient);
116116

117117
var queryString = new Dictionary<string, string?>
118118
{
@@ -133,8 +133,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
133133
public async Task Cannot_use_empty_filter()
134134
{
135135
// Arrange
136-
using HttpClient httpClient = _testContext.Factory.CreateClient();
137-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
136+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
137+
var apiClient = new QueryStringsClient(httpClient);
138138

139139
var queryString = new Dictionary<string, string?>
140140
{
Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,14 @@
11
using JsonApiDotNetCore.OpenApi.Client.NSwag;
2-
using Microsoft.Extensions.Logging;
32
using Newtonsoft.Json;
4-
using TestBuildingBlocks;
5-
using Xunit.Abstractions;
6-
7-
// ReSharper disable UnusedParameterInPartialMethod
83

94
namespace OpenApiNSwagEndToEndTests.QueryStrings.GeneratedCode;
105

116
internal partial class QueryStringsClient : JsonApiClient
127
{
13-
private readonly ILogger<QueryStringsClient>? _logger;
14-
15-
public QueryStringsClient(HttpClient httpClient, ITestOutputHelper testOutputHelper)
16-
: this(httpClient, CreateLogger(testOutputHelper))
17-
{
18-
}
19-
20-
private QueryStringsClient(HttpClient httpClient, ILogger<QueryStringsClient> logger)
21-
: this(httpClient)
22-
{
23-
_logger = logger;
24-
}
25-
26-
private static ILogger<QueryStringsClient> CreateLogger(ITestOutputHelper testOutputHelper)
27-
{
28-
var loggerFactory = new LoggerFactory(new[]
29-
{
30-
new XUnitLoggerProvider(testOutputHelper, null, LogOutputFields.Message)
31-
});
32-
33-
return loggerFactory.CreateLogger<QueryStringsClient>();
34-
}
35-
368
partial void UpdateJsonSerializerSettings(JsonSerializerSettings settings)
379
{
3810
SetSerializerSettingsForJsonApi(settings);
3911

4012
settings.Formatting = Formatting.Indented;
4113
}
42-
43-
partial void PrepareRequest(HttpClient client, HttpRequestMessage request, string url)
44-
{
45-
if (_logger != null && _logger.IsEnabled(LogLevel.Debug))
46-
{
47-
string? requestBody = request.Content?.ReadAsStringAsync().GetAwaiter().GetResult();
48-
_logger.LogDebug(requestBody != null ? $"--> {request}{Environment.NewLine}{Environment.NewLine}{requestBody}" : $"--> {request}");
49-
}
50-
}
51-
52-
partial void ProcessResponse(HttpClient client, HttpResponseMessage response)
53-
{
54-
if (_logger != null && _logger.IsEnabled(LogLevel.Debug))
55-
{
56-
string responseBody = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
57-
58-
_logger.LogDebug(
59-
!string.IsNullOrEmpty(responseBody) ? $"<-- {response}{Environment.NewLine}{Environment.NewLine}{responseBody}" : $"<-- {response}");
60-
}
61-
}
6214
}

test/OpenApiNSwagEndToEndTests/QueryStrings/IncludeTests.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ namespace OpenApiNSwagEndToEndTests.QueryStrings;
1111
public sealed class IncludeTests : IClassFixture<IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext>>
1212
{
1313
private readonly IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext> _testContext;
14-
private readonly ITestOutputHelper _testOutputHelper;
14+
private readonly XUnitLogHttpMessageHandler _logHttpMessageHandler;
1515
private readonly QueryStringFakers _fakers = new();
1616

1717
public IncludeTests(IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext> testContext, ITestOutputHelper testOutputHelper)
1818
{
1919
_testContext = testContext;
20-
_testOutputHelper = testOutputHelper;
20+
_logHttpMessageHandler = new XUnitLogHttpMessageHandler(testOutputHelper);
2121

2222
testContext.UseController<NodesController>();
2323
testContext.UseController<NameValuePairsController>();
@@ -37,8 +37,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
3737
await dbContext.SaveChangesAsync();
3838
});
3939

40-
using HttpClient httpClient = _testContext.Factory.CreateClient();
41-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
40+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
41+
var apiClient = new QueryStringsClient(httpClient);
4242

4343
var queryString = new Dictionary<string, string?>
4444
{
@@ -72,8 +72,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
7272
await dbContext.SaveChangesAsync();
7373
});
7474

75-
using HttpClient httpClient = _testContext.Factory.CreateClient();
76-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
75+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
76+
var apiClient = new QueryStringsClient(httpClient);
7777

7878
var queryString = new Dictionary<string, string?>
7979
{
@@ -107,8 +107,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
107107
await dbContext.SaveChangesAsync();
108108
});
109109

110-
using HttpClient httpClient = _testContext.Factory.CreateClient();
111-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
110+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
111+
var apiClient = new QueryStringsClient(httpClient);
112112

113113
var queryString = new Dictionary<string, string?>
114114
{
@@ -141,8 +141,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
141141
await dbContext.SaveChangesAsync();
142142
});
143143

144-
using HttpClient httpClient = _testContext.Factory.CreateClient();
145-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
144+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
145+
var apiClient = new QueryStringsClient(httpClient);
146146

147147
var queryString = new Dictionary<string, string?>
148148
{
@@ -175,8 +175,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
175175
await dbContext.SaveChangesAsync();
176176
});
177177

178-
using HttpClient httpClient = _testContext.Factory.CreateClient();
179-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
178+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
179+
var apiClient = new QueryStringsClient(httpClient);
180180

181181
var queryString = new Dictionary<string, string?>
182182
{

test/OpenApiNSwagEndToEndTests/QueryStrings/PaginationTests.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ namespace OpenApiNSwagEndToEndTests.QueryStrings;
1313
public sealed class PaginationTests : IClassFixture<IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext>>
1414
{
1515
private readonly IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext> _testContext;
16-
private readonly ITestOutputHelper _testOutputHelper;
16+
private readonly XUnitLogHttpMessageHandler _logHttpMessageHandler;
1717
private readonly QueryStringFakers _fakers = new();
1818

1919
public PaginationTests(IntegrationTestContext<OpenApiStartup<QueryStringsDbContext>, QueryStringsDbContext> testContext, ITestOutputHelper testOutputHelper)
2020
{
2121
_testContext = testContext;
22-
_testOutputHelper = testOutputHelper;
22+
_logHttpMessageHandler = new XUnitLogHttpMessageHandler(testOutputHelper);
2323

2424
testContext.UseController<NodesController>();
2525
}
@@ -37,8 +37,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
3737
await dbContext.SaveChangesAsync();
3838
});
3939

40-
using HttpClient httpClient = _testContext.Factory.CreateClient();
41-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
40+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
41+
var apiClient = new QueryStringsClient(httpClient);
4242

4343
var queryString = new Dictionary<string, string?>
4444
{
@@ -70,8 +70,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
7070
await dbContext.SaveChangesAsync();
7171
});
7272

73-
using HttpClient httpClient = _testContext.Factory.CreateClient();
74-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
73+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
74+
var apiClient = new QueryStringsClient(httpClient);
7575

7676
var queryString = new Dictionary<string, string?>
7777
{
@@ -104,8 +104,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
104104
await dbContext.SaveChangesAsync();
105105
});
106106

107-
using HttpClient httpClient = _testContext.Factory.CreateClient();
108-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
107+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
108+
var apiClient = new QueryStringsClient(httpClient);
109109

110110
var queryString = new Dictionary<string, string?>
111111
{
@@ -127,8 +127,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
127127
public async Task Cannot_use_empty_page_size()
128128
{
129129
// Arrange
130-
using HttpClient httpClient = _testContext.Factory.CreateClient();
131-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
130+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
131+
var apiClient = new QueryStringsClient(httpClient);
132132

133133
var queryString = new Dictionary<string, string?>
134134
{
@@ -156,8 +156,8 @@ public async Task Cannot_use_empty_page_size()
156156
public async Task Cannot_use_empty_page_number()
157157
{
158158
// Arrange
159-
using HttpClient httpClient = _testContext.Factory.CreateClient();
160-
var apiClient = new QueryStringsClient(httpClient, _testOutputHelper);
159+
using HttpClient httpClient = _testContext.Factory.CreateDefaultClient(_logHttpMessageHandler);
160+
var apiClient = new QueryStringsClient(httpClient);
161161

162162
var queryString = new Dictionary<string, string?>
163163
{

0 commit comments

Comments
 (0)