Skip to content

Commit 73cb36d

Browse files
committed
Use standard ASP.NET null guard
1 parent e46883d commit 73cb36d

2 files changed

Lines changed: 4 additions & 33 deletions

File tree

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
using Microsoft.AspNetCore.Builder;
2-
using Microsoft.AspNetCore.Http;
3-
using Microsoft.AspNetCore.Http.Features;
42

53
namespace PostHog;
64

@@ -19,36 +17,11 @@ public static IApplicationBuilder UsePostHogRequestContext(
1917
this IApplicationBuilder app,
2018
Action<PostHogRequestContextOptions>? configure = null)
2119
{
22-
if (app is null)
23-
{
24-
return new NoOpApplicationBuilder();
25-
}
20+
ArgumentNullException.ThrowIfNull(app);
2621

2722
var options = new PostHogRequestContextOptions();
2823
configure?.Invoke(options);
2924
return app.UseMiddleware<PostHogRequestContextMiddleware>(options);
3025
}
3126

32-
sealed class NoOpApplicationBuilder : IApplicationBuilder
33-
{
34-
readonly IFeatureCollection _serverFeatures = new FeatureCollection();
35-
readonly IDictionary<string, object?> _properties = new Dictionary<string, object?>();
36-
37-
public IServiceProvider ApplicationServices { get; set; } = new NoOpServiceProvider();
38-
39-
public IFeatureCollection ServerFeatures => _serverFeatures;
40-
41-
public IDictionary<string, object?> Properties => _properties;
42-
43-
public IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware) => this;
44-
45-
public IApplicationBuilder New() => new NoOpApplicationBuilder();
46-
47-
public RequestDelegate Build() => _ => Task.CompletedTask;
48-
}
49-
50-
sealed class NoOpServiceProvider : IServiceProvider
51-
{
52-
public object? GetService(Type serviceType) => null;
53-
}
5427
}

tests/UnitTests.AspNetCore/PostHogRequestContextMiddlewareTests.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@ public async Task NullHttpContextDoesNotThrow()
2121
}
2222

2323
[Fact]
24-
public async Task NullApplicationBuilderReturnsNoOpBuilder()
24+
public void NullApplicationBuilderThrowsArgumentNullException()
2525
{
26-
var app = PostHogRequestContextMiddlewareExtensions.UsePostHogRequestContext(null!);
27-
28-
Assert.NotNull(app);
29-
await app.Build()(new DefaultHttpContext());
26+
Assert.Throws<ArgumentNullException>(
27+
() => PostHogRequestContextMiddlewareExtensions.UsePostHogRequestContext(null!));
3028
}
3129

3230
[Fact]

0 commit comments

Comments
 (0)