Skip to content

Commit e6be8ef

Browse files
committed
middleware creation to make reusable across the unit tests
1 parent 703a622 commit e6be8ef

File tree

1 file changed

+19
-43
lines changed

1 file changed

+19
-43
lines changed

test/OrchardCore.Tests/Modules/OrchardCore.AutoSetup/AutoSetupMiddlewareTests.cs

+19-43
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public class AutoSetupMiddlewareTests
1717
private readonly Mock<IDistributedLock> _mockDistributedLock;
1818
private readonly Mock<IOptions<AutoSetupOptions>> _mockOptions;
1919
private readonly Mock<IAutoSetupService> _mockAutoSetupService;
20-
20+
private bool _nextCalled;
21+
private AutoSetupMiddleware _middleware;
2122
public AutoSetupMiddlewareTests()
2223
{
2324
_shellSettings = new ShellSettings();
@@ -36,34 +37,34 @@ public AutoSetupMiddlewareTests()
3637
new TenantSetupOptions { ShellName = ShellSettings.DefaultShellName }
3738
}
3839
});
39-
}
40-
41-
[Fact]
42-
public async Task InvokeAsync_InitializedShell_SkipsSetup()
43-
{
44-
// Arrange
45-
_shellSettings.State = TenantState.Running;
4640

47-
var httpContext = new DefaultHttpContext();
48-
var nextCalled = false;
49-
var middleware = new AutoSetupMiddleware(
41+
_middleware = new AutoSetupMiddleware(
5042
next: (innerHttpContext) =>
5143
{
52-
nextCalled = true;
53-
44+
_nextCalled = true;
45+
5446
return Task.CompletedTask;
5547
},
5648
_mockShellHost.Object,
5749
_shellSettings,
5850
_mockShellSettingsManager.Object,
5951
_mockDistributedLock.Object,
6052
_mockOptions.Object);
53+
}
54+
55+
[Fact]
56+
public async Task InvokeAsync_InitializedShell_SkipsSetup()
57+
{
58+
// Arrange
59+
_shellSettings.State = TenantState.Running;
60+
61+
var httpContext = new DefaultHttpContext();
6162

6263
// Act
63-
await middleware.InvokeAsync(httpContext);
64+
await _middleware.InvokeAsync(httpContext);
6465

6566
// Assert
66-
Assert.True(nextCalled);
67+
Assert.True(_nextCalled);
6768
_mockAutoSetupService.Verify(s => s.SetupTenantAsync(It.IsAny<TenantSetupOptions>(), It.IsAny<ShellSettings>()), Times.Never);
6869
}
6970

@@ -84,16 +85,8 @@ public async Task InvokeAsync_FailedSetup_ReturnsServiceUnavailable()
8485
.AddSingleton(_mockAutoSetupService.Object)
8586
.BuildServiceProvider();
8687

87-
var middleware = new AutoSetupMiddleware(
88-
next: (innerHttpContext) => Task.CompletedTask,
89-
_mockShellHost.Object,
90-
_shellSettings,
91-
_mockShellSettingsManager.Object,
92-
_mockDistributedLock.Object,
93-
_mockOptions.Object);
94-
9588
// Act
96-
await middleware.InvokeAsync(httpContext);
89+
await _middleware.InvokeAsync(httpContext);
9790

9891
// Assert
9992
Assert.Equal(StatusCodes.Status503ServiceUnavailable, httpContext.Response.StatusCode);
@@ -116,16 +109,8 @@ public async Task InvokeAsync_UnInitializedShell_PerformsSetup()
116109
.AddSingleton(_mockAutoSetupService.Object)
117110
.BuildServiceProvider();
118111

119-
var middleware = new AutoSetupMiddleware(
120-
next: (innerHttpContext) => Task.CompletedTask,
121-
_mockShellHost.Object,
122-
_shellSettings,
123-
_mockShellSettingsManager.Object,
124-
_mockDistributedLock.Object,
125-
_mockOptions.Object);
126-
127112
// Act
128-
await middleware.InvokeAsync(httpContext);
113+
await _middleware.InvokeAsync(httpContext);
129114

130115
// Assert
131116
Assert.Equal(StatusCodes.Status302Found, httpContext.Response.StatusCode); // Redirect
@@ -142,16 +127,8 @@ public async Task InvokeAsync_FailedLockAcquisition_ThrowsTimeoutException()
142127

143128
var httpContext = new DefaultHttpContext();
144129

145-
var middleware = new AutoSetupMiddleware(
146-
next: (innerHttpContext) => Task.CompletedTask,
147-
_mockShellHost.Object,
148-
_shellSettings,
149-
_mockShellSettingsManager.Object,
150-
_mockDistributedLock.Object,
151-
_mockOptions.Object);
152-
153130
// Act & Assert
154-
await Assert.ThrowsAsync<TimeoutException>(() => middleware.InvokeAsync(httpContext));
131+
await Assert.ThrowsAsync<TimeoutException>(() => _middleware.InvokeAsync(httpContext));
155132
}
156133

157134
private void SetupDistributedLockMock(bool acquireLock)
@@ -162,4 +139,3 @@ private void SetupDistributedLockMock(bool acquireLock)
162139
.ReturnsAsync((mockLocker.Object, acquireLock));
163140
}
164141
}
165-

0 commit comments

Comments
 (0)