-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAspNetCore3JwtBearerExtensionsTests.cs
More file actions
49 lines (41 loc) · 1.82 KB
/
Copy pathAspNetCore3JwtBearerExtensionsTests.cs
File metadata and controls
49 lines (41 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using GraphQL.AspNetCore3.JwtBearer;
using ServiceLifetime = GraphQL.DI.ServiceLifetime;
namespace Tests.JwtBearer;
public class AspNetCore3JwtBearerExtensionsTests
{
[Fact]
public void AddJwtBearerAuthentication_ShouldAddJwtWebSocketAuthenticationService()
{
// Arrange
var serviceRegisterMock = new Mock<IServiceRegister>(MockBehavior.Strict);
var graphQLBuilderMock = new Mock<IGraphQLBuilder>(MockBehavior.Strict);
// Setup the Services property to return the mocked IServiceRegister
graphQLBuilderMock
.SetupGet(x => x.Services)
.Returns(serviceRegisterMock.Object);
// Setup the Register method to accept specific parameters
serviceRegisterMock
.Setup(x => x.Register(
typeof(IWebSocketAuthenticationService),
typeof(JwtWebSocketAuthenticationService),
ServiceLifetime.Singleton,
false))
.Returns(serviceRegisterMock.Object);
// Setup the Configure method to accept any Action<JwtBearerAuthenticationOptions, IServiceProvider>
serviceRegisterMock
.Setup(x => x.Configure<JwtBearerAuthenticationOptions>(It.IsAny<Action<JwtBearerAuthenticationOptions, IServiceProvider>>()))
.Returns(serviceRegisterMock.Object);
// Act
var result = graphQLBuilderMock.Object.AddJwtBearerAuthentication();
// Assert
result.ShouldBe(graphQLBuilderMock.Object);
// Verify that Register was called with the correct parameters
serviceRegisterMock.Verify(
x => x.Register(
typeof(IWebSocketAuthenticationService),
typeof(JwtWebSocketAuthenticationService),
ServiceLifetime.Singleton,
false),
Times.Once);
}
}