using e_suite.API.Common; using e_suite.Database.Audit; using e_suite.Modules.UserManager.Facade; using e_suite.Modules.UserManager.Services; using e_suite.Nuget.PasswordHasher; using e_suite.UnitTestCore; using eSuite.Core.MailService; using Google.Authenticator; using Microsoft.AspNetCore.Identity; using Moq; using UserManager.UnitTests.Repository; namespace UserManager.UnitTests.Helpers; public class UserManagerTestBase : TestBase { protected Mock> CustomPasswordHasherMock = null!; protected Mock TwoFactorAuthenticatorMock = null!; protected Mock JwtServiceMock = null!; protected Mock MailServiceMock = null!; protected Mock RandomNumberGeneratorMock = null!; protected FakeUserManagerRepository UserManagerRepository = null!; protected FakeDomainRepository DomainRepository = null!; protected AuditUserDetails AuditUserDetails = null!; protected SetupCode SetupCode = null!; protected IUserManager UserManager = null!; public override async Task Setup() { await base.Setup(); AuditUserDetails = new AuditUserDetails { UserId = -1, UserDisplayName = "Testing User", Comment = "Test comment" }; JwtServiceMock = new Mock(); CustomPasswordHasherMock = new Mock>(); TwoFactorAuthenticatorMock = new Mock(); SetupCode = new SetupCode(); TwoFactorAuthenticatorMock.Setup( x => x.GenerateSetupCode(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())).Returns(SetupCode); MailServiceMock = new Mock(); RandomNumberGeneratorMock = new Mock(); UserManagerRepository = new FakeUserManagerRepository(_fakeClock); DomainRepository = new FakeDomainRepository(); UserManager = new e_suite.Modules.UserManager.UserManager(_configuration, CustomPasswordHasherMock.Object, TwoFactorAuthenticatorMock.Object, JwtServiceMock.Object, MailServiceMock.Object, RandomNumberGeneratorMock.Object, _fakeClock, UserManagerRepository, DomainRepository); } }