/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core.Tests/Features/Users/Queries/GetUserByIdQueryHandlerTests.cs
71 строка
2 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using FluentAssertions; using Gridient.Core.Features.Users.Queries; using Gridient.Core.Models; using Gridient.Core.Services.Interfaces; using Gridient.Core.Tests.Helpers.TestDataBuilders; using Moq; using Xunit; using UserModel = Gridient.Core.Models.User; namespace Gridient.Core.Tests.Features.Users.Queries { public class GetUserByIdQueryHandlerTests { private readonly Mock<IUserRepository> _userRepositoryMock; private readonly GetUserByIdQueryHandler _handler; public GetUserByIdQueryHandlerTests() { _userRepositoryMock = new Mock<IUserRepository>(); _handler = new GetUserByIdQueryHandler(_userRepositoryMock.Object); } #region Handle /// <summary> /// Проверяет, что handler создается корректно /// </summary> [Fact] public void Constructor_ShouldCreateHandler() { // Assert _handler.Should().NotBeNull(); } /// <summary> /// Проверяет, что handler использует правильный тип запроса /// </summary> [Fact] public void Handler_ImplementsCorrectInterface() { // Assert _handler.Should().BeAssignableTo<MediatR.IRequestHandler<GetUserByIdQuery, UserModel>>(); } /// <summary> /// Проверяет, что Handle возвращает пользователя по ID /// </summary> [Fact] public async Task Handle_WithValidUserId_ShouldReturnUser() { // Arrange var userId = 1; var query = new GetUserByIdQuery(userId); var expectedUser = UserServiceTestDataBuilder.CreateUser(id: userId, login: "testuser"); _userRepositoryMock .Setup(x => x.GetByIdAsync(userId, It.IsAny<CancellationToken>())) .ReturnsAsync(expectedUser); // Act var result = await _handler.Handle(query, CancellationToken.None); // Assert result.Should().NotBeNull(); result.Should().BeEquivalentTo(expectedUser); _userRepositoryMock.Verify(x => x.GetByIdAsync(userId, It.IsAny<CancellationToken>()), Times.Once); } #endregion } }