/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Infrastructure.Authentication.Local.Tests/Controllers/RegistrationControllerTests.cs
88 строк
3 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using FluentAssertions; using Gridient.Infrastructure.Authentication.Local.Controllers; using Gridient.Infrastructure.Authentication.Local.Features.Registration.Commands; using Gridient.Infrastructure.Authentication.Local.Tests.Helpers.TestDataBuilders; using MediatR; using Microsoft.AspNetCore.Mvc; using Moq; using Xunit; namespace Gridient.Infrastructure.Authentication.Local.Tests.Controllers { public class RegistrationControllerTests { private readonly Mock<IMediator> _mediatorMock; public RegistrationControllerTests() { _mediatorMock = new Mock<IMediator>(); } #region Register /// <summary> /// Проверяет, что Register возвращает Forbid, если публичная регистрация выключена. /// </summary> [Fact] public async Task Register_WhenPublicSignupDisabled_ShouldReturnConflict() { var controller = new RegistrationController(_mediatorMock.Object); var cancellationToken = CancellationToken.None; var model = RegisterModelTestDataBuilder.CreateRegisterModel(); _mediatorMock .Setup(x => x.Send(It.IsAny<RegisterCommand>(), cancellationToken)) .ThrowsAsync(new InvalidOperationException("Публичная регистрация отключена")); var result = await controller.Register(model, cancellationToken); result.Should().BeOfType<ConflictObjectResult>(); ((ConflictObjectResult)result).Value.Should().NotBeNull(); } /// <summary> /// Проверяет, что Register возвращает Ok, если регистрация прошла успешно. /// </summary> [Fact] public async Task Register_WhenSuccess_ShouldReturnOkWithMessage() { var controller = new RegistrationController(_mediatorMock.Object); var cancellationToken = CancellationToken.None; var model = RegisterModelTestDataBuilder.CreateRegisterModel(); _mediatorMock .Setup(x => x.Send(It.IsAny<RegisterCommand>(), cancellationToken)) .Returns(Task.CompletedTask); var result = await controller.Register(model, cancellationToken); result.Should().BeOfType<OkObjectResult>(); ((OkObjectResult)result).Value.Should().NotBeNull(); } /// <summary> /// Проверяет, что Register возвращает Conflict, если сервис бросил InvalidOperationException. /// </summary> [Fact] public async Task Register_WhenInvalidOperation_ShouldReturnConflictWithMessage() { var controller = new RegistrationController(_mediatorMock.Object); var cancellationToken = CancellationToken.None; var model = RegisterModelTestDataBuilder.CreateRegisterModel(); _mediatorMock .Setup(x => x.Send(It.IsAny<RegisterCommand>(), cancellationToken)) .ThrowsAsync(new InvalidOperationException("duplicate")); var result = await controller.Register(model, cancellationToken); result.Should().BeOfType<ConflictObjectResult>(); ((ConflictObjectResult)result).Value.Should().NotBeNull(); } #endregion } }