mirror of
https://github.com/bitwarden/server.git
synced 2025-06-16 07:50:49 -05:00
Fixed tests.
This commit is contained in:
parent
865bbc91b3
commit
5418d817d0
@ -18,14 +18,17 @@ namespace Bit.Core.Test.Auth.Services;
|
||||
[SutProviderCustomize]
|
||||
public class TwoFactorEmailServiceTests
|
||||
{
|
||||
|
||||
[Theory, BitAutoData]
|
||||
public async Task SendTwoFactorEmailAsync_Success(SutProvider<TwoFactorEmailService> sutProvider, User user)
|
||||
{
|
||||
var email = user.Email.ToLowerInvariant();
|
||||
var token = "thisisatokentocompare";
|
||||
var IpAddress = "1.1.1.1";
|
||||
var deviceType = "Android";
|
||||
var deviceType = DeviceType.Android;
|
||||
|
||||
var context = sutProvider.GetDependency<ICurrentContext>();
|
||||
context.DeviceType = deviceType;
|
||||
context.IpAddress = IpAddress;
|
||||
|
||||
var userTwoFactorTokenProvider = Substitute.For<IUserTwoFactorTokenProvider<User>>();
|
||||
userTwoFactorTokenProvider
|
||||
@ -35,10 +38,6 @@ public class TwoFactorEmailServiceTests
|
||||
.GenerateAsync("TwoFactor", Arg.Any<UserManager<User>>(), user)
|
||||
.Returns(Task.FromResult(token));
|
||||
|
||||
var context = Substitute.For<ICurrentContext>();
|
||||
context.DeviceType = DeviceType.Android;
|
||||
context.IpAddress = IpAddress;
|
||||
|
||||
var userManager = sutProvider.GetDependency<UserManager<User>>();
|
||||
userManager.RegisterTokenProvider(CoreHelpers.CustomProviderName(TwoFactorProviderType.Email), userTwoFactorTokenProvider);
|
||||
|
||||
@ -54,7 +53,7 @@ public class TwoFactorEmailServiceTests
|
||||
|
||||
await sutProvider.GetDependency<IMailService>()
|
||||
.Received(1)
|
||||
.SendTwoFactorEmailAsync(email, user.Email, token, IpAddress, deviceType,
|
||||
.SendTwoFactorEmailAsync(email, user.Email, token, IpAddress, deviceType.ToString(),
|
||||
TwoFactorEmailPurpose.Login);
|
||||
}
|
||||
|
||||
@ -64,7 +63,11 @@ public class TwoFactorEmailServiceTests
|
||||
var email = user.Email.ToLowerInvariant();
|
||||
var token = "thisisatokentocompare";
|
||||
var IpAddress = "1.1.1.1";
|
||||
var deviceType = "Android";
|
||||
var deviceType = DeviceType.Android;
|
||||
|
||||
var context = sutProvider.GetDependency<ICurrentContext>();
|
||||
context.DeviceType = deviceType;
|
||||
context.IpAddress = IpAddress;
|
||||
|
||||
var userTwoFactorTokenProvider = Substitute.For<IUserTwoFactorTokenProvider<User>>();
|
||||
userTwoFactorTokenProvider
|
||||
@ -74,15 +77,23 @@ public class TwoFactorEmailServiceTests
|
||||
.GenerateAsync("TwoFactor", Arg.Any<UserManager<User>>(), user)
|
||||
.Returns(Task.FromResult(token));
|
||||
|
||||
var context = Substitute.For<ICurrentContext>();
|
||||
context.DeviceType = DeviceType.Android;
|
||||
context.IpAddress = IpAddress;
|
||||
var userManager = sutProvider.GetDependency<UserManager<User>>();
|
||||
userManager.RegisterTokenProvider(CoreHelpers.CustomProviderName(TwoFactorProviderType.Email), userTwoFactorTokenProvider);
|
||||
|
||||
user.SetTwoFactorProviders(new Dictionary<TwoFactorProviderType, TwoFactorProvider>
|
||||
{
|
||||
[TwoFactorProviderType.Email] = new TwoFactorProvider
|
||||
{
|
||||
MetaData = new Dictionary<string, object> { ["Email"] = email },
|
||||
Enabled = true
|
||||
}
|
||||
});
|
||||
|
||||
await sutProvider.Sut.SendTwoFactorEmailAsync(user);
|
||||
|
||||
await sutProvider.GetDependency<IMailService>()
|
||||
.Received(1)
|
||||
.SendTwoFactorEmailAsync(email, user.Email, token, IpAddress, deviceType,
|
||||
.SendTwoFactorEmailAsync(email, user.Email, token, IpAddress, deviceType.ToString(),
|
||||
TwoFactorEmailPurpose.Login);
|
||||
}
|
||||
|
||||
@ -92,28 +103,28 @@ public class TwoFactorEmailServiceTests
|
||||
var email = user.Email.ToLowerInvariant();
|
||||
var token = "thisisatokentocompare";
|
||||
var IpAddress = "1.1.1.1";
|
||||
var deviceType = "Android";
|
||||
var deviceType = DeviceType.Android;
|
||||
|
||||
var context = sutProvider.GetDependency<ICurrentContext>();
|
||||
context.DeviceType = deviceType;
|
||||
context.IpAddress = IpAddress;
|
||||
|
||||
var userTwoFactorTokenProvider = Substitute.For<IUserTwoFactorTokenProvider<User>>();
|
||||
userTwoFactorTokenProvider
|
||||
.CanGenerateTwoFactorTokenAsync(Arg.Any<UserManager<User>>(), user)
|
||||
.Returns(Task.FromResult(true));
|
||||
userTwoFactorTokenProvider
|
||||
.GenerateAsync("TwoFactor", Arg.Any<UserManager<User>>(), user)
|
||||
.GenerateAsync("otp:" + user.Email, Arg.Any<UserManager<User>>(), user)
|
||||
.Returns(Task.FromResult(token));
|
||||
|
||||
var context = Substitute.For<ICurrentContext>();
|
||||
context.DeviceType = DeviceType.Android;
|
||||
context.IpAddress = IpAddress;
|
||||
|
||||
var userManager = sutProvider.GetDependency<UserManager<User>>();
|
||||
userManager.RegisterTokenProvider(CoreHelpers.CustomProviderName(TwoFactorProviderType.Email), userTwoFactorTokenProvider);
|
||||
userManager.RegisterTokenProvider(TokenOptions.DefaultEmailProvider, userTwoFactorTokenProvider);
|
||||
|
||||
await sutProvider.Sut.SendNewDeviceVerificationEmailAsync(user);
|
||||
|
||||
await sutProvider.GetDependency<IMailService>()
|
||||
.Received(1)
|
||||
.SendTwoFactorEmailAsync(email, user.Email, token, IpAddress, deviceType,
|
||||
.SendTwoFactorEmailAsync(email, user.Email, token, IpAddress, deviceType.ToString(),
|
||||
TwoFactorEmailPurpose.NewDeviceVerification);
|
||||
}
|
||||
|
||||
@ -164,13 +175,18 @@ public class TwoFactorEmailServiceTests
|
||||
[Theory]
|
||||
[BitAutoData(DeviceType.UnknownBrowser, "Unknown Browser")]
|
||||
[BitAutoData(DeviceType.Android, "Android")]
|
||||
public async Task SendTwoFactorEmailAsync_DeviceMatches(SutProvider<TwoFactorEmailService> sutProvider, DeviceType deviceType, string deviceTypeName,
|
||||
public async Task SendTwoFactorEmailAsync_DeviceMatches(DeviceType deviceType, string deviceTypeName,
|
||||
SutProvider<TwoFactorEmailService> sutProvider,
|
||||
User user)
|
||||
{
|
||||
var email = user.Email.ToLowerInvariant();
|
||||
var token = "thisisatokentocompare";
|
||||
var IpAddress = "1.1.1.1";
|
||||
|
||||
var context = sutProvider.GetDependency<ICurrentContext>();
|
||||
context.DeviceType = deviceType;
|
||||
context.IpAddress = IpAddress;
|
||||
|
||||
var userTwoFactorTokenProvider = Substitute.For<IUserTwoFactorTokenProvider<User>>();
|
||||
userTwoFactorTokenProvider
|
||||
.CanGenerateTwoFactorTokenAsync(Arg.Any<UserManager<User>>(), user)
|
||||
@ -179,10 +195,6 @@ public class TwoFactorEmailServiceTests
|
||||
.GenerateAsync("TwoFactor", Arg.Any<UserManager<User>>(), user)
|
||||
.Returns(Task.FromResult(token));
|
||||
|
||||
var context = Substitute.For<ICurrentContext>();
|
||||
context.DeviceType = deviceType;
|
||||
context.IpAddress = IpAddress;
|
||||
|
||||
var userManager = sutProvider.GetDependency<UserManager<User>>();
|
||||
userManager.RegisterTokenProvider(CoreHelpers.CustomProviderName(TwoFactorProviderType.Email), userTwoFactorTokenProvider);
|
||||
|
||||
@ -199,7 +211,7 @@ public class TwoFactorEmailServiceTests
|
||||
|
||||
await sutProvider.GetDependency<IMailService>()
|
||||
.Received(1)
|
||||
.SendTwoFactorEmailAsync(Arg.Any<string>(), Arg.Any<string>(), Arg.Any<string>(), Arg.Any<string>(), deviceTypeName, Arg.Any<TwoFactorEmailPurpose>());
|
||||
.SendTwoFactorEmailAsync(Arg.Any<string>(), Arg.Any<string>(), Arg.Any<string>(), Arg.Any<string>(), deviceTypeName, TwoFactorEmailPurpose.Login);
|
||||
}
|
||||
|
||||
[Theory, BitAutoData]
|
||||
|
Loading…
x
Reference in New Issue
Block a user