Skip to content

Commit f8037eb

Browse files
Tobias Mønstertpeczek
authored andcommitted
replace array with hashset and refactor tests
1 parent 6939780 commit f8037eb

File tree

2 files changed

+10
-19
lines changed

2 files changed

+10
-19
lines changed

Lib.AspNetCore.ServerSentEvents/ServerSentEventsMiddleware.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.Linq;
34
using System.Threading;
45
using System.Threading.Tasks;
@@ -28,6 +29,7 @@ public class ServerSentEventsMiddleware<TServerSentEventsService> where TServerS
2829
private readonly ServerSentEventsOptions _serverSentEventsOptions;
2930
private readonly ILogger<ServerSentEventsMiddleware<TServerSentEventsService>> _logger;
3031
private readonly bool _clientDisconnectServicesAvailable = false;
32+
private readonly HashSet<string> AcceptedHeaders = new() { "*/*", "text/*", Constants.SSE_CONTENT_TYPE };
3133

3234
private AuthorizationPolicy _authorizationPolicy;
3335
#endregion
@@ -114,7 +116,7 @@ public async Task Invoke(HttpContext context, IPolicyEvaluator policyEvaluator)
114116
}
115117
}
116118

117-
private static readonly string[] AcceptedHeaders = new[] { "*/*", "text/*", Constants.SSE_CONTENT_TYPE };
119+
118120

119121
private bool CheckAcceptHeader(IHeaderDictionary requestHeaders)
120122
{

Test.AspNetCore.ServerSentEvents/Unit/Middleware/HandshakeTests.cs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,15 @@ public async Task Invoke_SseRequestWithoutAcceptHeaderAndAcceptHeaderRequired_Do
3737
Assert.Null(context.Response.ContentType);
3838
}
3939

40-
[Fact]
41-
public async Task Invoke_SseRequestWithEventStreamAcceptHeader_Accepts()
40+
41+
[Theory]
42+
[InlineData("*/*")]
43+
[InlineData("text/*")]
44+
[InlineData(SSE_CONTENT_TYPE)]
45+
public async Task Invoke_SseRequestWithAcceptedHeader_Accepts(string header)
4246
{
4347
ServerSentEventsMiddleware<ServerSentEventsService> serverSentEventsMiddleware = SubjectUnderTestHelper.PrepareServerSentEventsMiddleware();
44-
HttpContext context = SubjectUnderTestHelper.PrepareHttpContext(acceptHeaderValue: SSE_CONTENT_TYPE);
48+
HttpContext context = SubjectUnderTestHelper.PrepareHttpContext(acceptHeaderValue: header);
4549

4650
await serverSentEventsMiddleware.Invoke(context, null);
4751

@@ -95,21 +99,6 @@ public async Task Invoke_SseRequestWithMultipleAcceptHeadersWithNotEventStreamAc
9599
Assert.Null(context.Response.ContentType);
96100
}
97101

98-
99-
[Theory]
100-
[InlineData("*/*")]
101-
[InlineData("text/*")]
102-
[InlineData(SSE_CONTENT_TYPE)]
103-
public async Task Invoke_SseRequestWithAcceptedHeader_Accepts(string header)
104-
{
105-
ServerSentEventsMiddleware<ServerSentEventsService> serverSentEventsMiddleware = SubjectUnderTestHelper.PrepareServerSentEventsMiddleware();
106-
HttpContext context = SubjectUnderTestHelper.PrepareHttpContext(acceptHeaderValue: header);
107-
108-
await serverSentEventsMiddleware.Invoke(context, null);
109-
110-
Assert.Equal(SSE_CONTENT_TYPE, context.Response.ContentType);
111-
}
112-
113102
#endregion
114103
}
115104
}

0 commit comments

Comments
 (0)