0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-30 02:31:08 +00:00
CleanArchitecture/CleanArchitecture.Application.Tests/Fixtures/Queries/Users/GetAllUsersTestFixture.cs
2024-09-01 11:04:26 +02:00

61 lines
1.6 KiB
C#

using System;
using CleanArchitecture.Application.Queries.Users.GetAll;
using CleanArchitecture.Application.SortProviders;
using CleanArchitecture.Domain.Entities;
using CleanArchitecture.Domain.Enums;
using CleanArchitecture.Domain.Interfaces.Repositories;
using MockQueryable.EntityFrameworkCore;
using NSubstitute;
namespace CleanArchitecture.Application.Tests.Fixtures.Queries.Users;
public sealed class GetAllUsersTestFixture : QueryHandlerBaseFixture
{
private IUserRepository UserRepository { get; }
public GetAllUsersQueryHandler Handler { get; }
public Guid ExistingUserId { get; } = Guid.NewGuid();
public GetAllUsersTestFixture()
{
UserRepository = Substitute.For<IUserRepository>();
var sortingProvider = new UserViewModelSortProvider();
Handler = new GetAllUsersQueryHandler(UserRepository, sortingProvider);
}
public User SetupUserAsync()
{
var user = new User(
ExistingUserId,
Guid.NewGuid(),
"max@mustermann.com",
"Max",
"Mustermann",
"Password",
UserRole.User);
var query = new[] { user }.BuildMock();
UserRepository.GetAllNoTracking().Returns(query);
return user;
}
public void SetupDeletedUserAsync()
{
var user = new User(
ExistingUserId,
Guid.NewGuid(),
"max@mustermann.com",
"Max",
"Mustermann",
"Password",
UserRole.User);
user.Delete();
var query = new[] { user }.BuildMock();
UserRepository.GetAllNoTracking().Returns(query);
}
}