Skip to content

Commit db740df

Browse files
committed
Added tests to validate IStartupFilter is registered correctly (#358)
1 parent f1b3c5b commit db740df

File tree

3 files changed

+56
-4
lines changed

3 files changed

+56
-4
lines changed

test/MyTested.AspNetCore.Mvc.Abstractions.Test/ServicesTests.cs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
using Setups.Common;
2929
using Setups.Controllers;
3030
using Setups.Services;
31+
using Setups.StartupFilters;
3132
using Setups.Startups;
3233
using Xunit;
3334

@@ -714,10 +715,11 @@ public void ConfigureContainerWithNoServerServicesShouldThrowCorrectExceptionMes
714715
[Fact]
715716
public void RegisteringServerServicesTwiceShouldResolveThemCorrectly()
716717
{
717-
MyApplication.IsRunningOn(server => server
718-
.WithServices(services => services
719-
.AddTransient<IInjectedService, InjectedService>())
720-
.WithStartup<DefaultStartup>());
718+
MyApplication
719+
.IsRunningOn(server => server
720+
.WithServices(services => services
721+
.AddTransient<IInjectedService, InjectedService>())
722+
.WithStartup<DefaultStartup>());
721723

722724
var injectedService = TestServiceProvider.GetService<IInjectedService>();
723725

@@ -840,5 +842,21 @@ public void EndpointRoutesShouldRegisterCorrectValues()
840842

841843
MyApplication.StartsFrom<DefaultStartup>();
842844
}
845+
846+
[Fact]
847+
public void StartupFiltersShouldBeRegisteredAndConsidered()
848+
{
849+
MyApplication
850+
.StartsFrom<DefaultStartup>()
851+
.WithServices(services => services
852+
.AddSingleton<IStartupFilter>(new CustomStartupFilter()));
853+
854+
var sameStartupFilter = TestServiceProvider.GetService<IStartupFilter>() as CustomStartupFilter;
855+
856+
Assert.NotNull(sameStartupFilter);
857+
Assert.True(sameStartupFilter.ConfigurationRegistered);
858+
859+
MyApplication.StartsFrom<DefaultStartup>();
860+
}
843861
}
844862
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace MyTested.AspNetCore.Mvc.Test.Setups.Http
2+
{
3+
public class CustomHttpFeature
4+
{
5+
6+
}
7+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace MyTested.AspNetCore.Mvc.Test.Setups.StartupFilters
2+
{
3+
using System;
4+
using Http;
5+
using Microsoft.AspNetCore.Builder;
6+
using Microsoft.AspNetCore.Hosting;
7+
8+
public class CustomStartupFilter : IStartupFilter
9+
{
10+
public bool ConfigurationRegistered { get; private set; }
11+
12+
public Action<IApplicationBuilder> Configure(Action<IApplicationBuilder> next)
13+
=> app =>
14+
{
15+
this.ConfigurationRegistered = true;
16+
17+
app.Use(async (context, nextMiddleware) =>
18+
{
19+
context.Features.Set(new CustomHttpFeature());
20+
21+
await nextMiddleware();
22+
});
23+
24+
next(app);
25+
};
26+
}
27+
}

0 commit comments

Comments
 (0)