0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-29 18:21:08 +00:00
CleanArchitecture/CleanArchitecture.Domain.Tests/CommandHandler/User/LoginUser/LoginUserCommandTestFixture.cs
2023-03-22 19:06:01 +01:00

55 lines
1.6 KiB
C#

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<IUserRepository>();
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<IUserRepository> UserRepository { get; set; }
public IOptions<TokenSettings> 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<string>(y => y == user.Email)))
.ReturnsAsync(user);
return user;
}
}