0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-30 10:33:43 +00:00
CleanArchitecture/CleanArchitecture.Application.Tests/Fixtures/Queries/Users/GetUserByIdTestFixture.cs
2023-03-19 18:26:45 +01:00

62 lines
1.7 KiB
C#

using System;
using System.Linq;
using CleanArchitecture.Application.Queries.Users.GetUserById;
using CleanArchitecture.Domain.Entities;
using CleanArchitecture.Domain.Enums;
using CleanArchitecture.Domain.Interfaces.Repositories;
using MockQueryable.Moq;
using Moq;
namespace CleanArchitecture.Application.Tests.Fixtures.Queries.Users;
public sealed class GetUserByIdTestFixture : QueryHandlerBaseFixture
{
private Mock<IUserRepository> UserRepository { get; }
public GetUserByIdQueryHandler Handler { get; }
public Guid ExistingUserId { get; } = Guid.NewGuid();
public GetUserByIdTestFixture()
{
UserRepository = new();
Handler = new(UserRepository.Object, Bus.Object);
}
public void SetupUserAsync()
{
var user = new Mock<User>(() =>
new User(
ExistingUserId,
"max@mustermann.com",
"Max",
"Mustermann",
"Password",
UserRole.User));
var query = new[] { user.Object }.AsQueryable().BuildMock();
UserRepository
.Setup(x => x.GetAllNoTracking())
.Returns(query);
}
public void SetupDeletedUserAsync()
{
var user = new Mock<User>(() =>
new User(
ExistingUserId,
"max@mustermann.com",
"Max",
"Mustermann",
"Password",
UserRole.User));
user.Object.Delete();
var query = new[] { user.Object }.AsQueryable().BuildMock();
UserRepository
.Setup(x => x.GetAllNoTracking())
.Returns(query);
}
}