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/CreateUser/CreateUserCommandTestFixture.cs
2023-08-31 18:19:17 +02:00

74 lines
2.0 KiB
C#

using System;
using CleanArchitecture.Domain.Commands.Users.CreateUser;
using CleanArchitecture.Domain.Enums;
using CleanArchitecture.Domain.Interfaces;
using CleanArchitecture.Domain.Interfaces.Repositories;
using NSubstitute;
namespace CleanArchitecture.Domain.Tests.CommandHandler.User.CreateUser;
public sealed class CreateUserCommandTestFixture : CommandHandlerFixtureBase
{
public CreateUserCommandHandler CommandHandler { get; }
private IUserRepository UserRepository { get; }
private ITenantRepository TenantRepository { get; }
private IUser User { get; }
public CreateUserCommandTestFixture()
{
UserRepository = Substitute.For<IUserRepository>();
TenantRepository = Substitute.For<ITenantRepository>();
User = Substitute.For<IUser>();
CommandHandler = new CreateUserCommandHandler(
Bus,
UnitOfWork,
NotificationHandler,
UserRepository,
TenantRepository,
User);
}
public Entities.User SetupUser()
{
var user = new Entities.User(
Guid.NewGuid(),
Guid.NewGuid(),
"max@mustermann.com",
"Max",
"Mustermann",
"Password",
UserRole.User);
UserRepository
.GetByIdAsync(Arg.Is<Guid>(y => y == user.Id))
.Returns(user);
return user;
}
public void SetupCurrentUser()
{
var userId = Guid.NewGuid();
User.GetUserId().Returns(userId);
UserRepository
.GetByIdAsync(Arg.Is<Guid>(y => y == userId))
.Returns(new Entities.User(
userId,
Guid.NewGuid(),
"some email",
"some first name",
"some last name",
"some password",
UserRole.Admin));
}
public void SetupTenant(Guid tenantId)
{
TenantRepository
.ExistsAsync(Arg.Is<Guid>(y => y == tenantId))
.Returns(true);
}
}