using System; using CleanArchitecture.Domain.Commands.Users.LoginUser; using CleanArchitecture.Domain.Enums; using CleanArchitecture.Domain.Interfaces.Repositories; using CleanArchitecture.Domain.Settings; using Microsoft.Extensions.Options; using Moq; using BC = BCrypt.Net.BCrypt; namespace CleanArchitecture.Domain.Tests.CommandHandler.User.LoginUser; public sealed class LoginUserCommandTestFixture : CommandHandlerFixtureBase { public LoginUserCommandTestFixture() { UserRepository = new Mock(); TokenSettings = Options.Create(new TokenSettings { Issuer = "TestIssuer", Audience = "TestAudience", Secret = "asjdlkasjd87439284)@#(*" }); CommandHandler = new LoginUserCommandHandler( Bus.Object, UnitOfWork.Object, NotificationHandler.Object, UserRepository.Object, TokenSettings); } public LoginUserCommandHandler CommandHandler { get; set; } public Mock UserRepository { get; set; } public IOptions TokenSettings { get; set; } public Entities.User SetupUser() { var user = new Entities.User( Guid.NewGuid(), "max@mustermann.com", "Max", "Mustermann", BC.HashPassword("z8]tnayvd5FNLU9:]AQm"), UserRole.User); User.Setup(x => x.GetUserId()).Returns(user.Id); UserRepository .Setup(x => x.GetByEmailAsync(It.Is(y => y == user.Email))) .ReturnsAsync(user); return user; } }