/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core.Tests/Controllers/UserReportFieldsControllerTests.cs
136 строк
5 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using FluentAssertions; using Gridient.Core.Controllers; using Gridient.Core.Features.UserReportFields.Commands; using Gridient.Core.Features.UserReportFields.Queries; using Gridient.Core.Models; using Gridient.Core.Tests.Controllers; using MediatR; using Microsoft.AspNetCore.Mvc; using Moq; using Xunit; namespace Gridient.Core.Tests.Controllers { public class UserReportFieldsControllerTests : ControllerTestBase { private readonly Mock<IMediator> _mediatorMock; private readonly UserReportFieldsController _controller; public UserReportFieldsControllerTests() { _mediatorMock = new Mock<IMediator>(); _controller = new UserReportFieldsController(_mediatorMock.Object); SetupControllerContext(_controller, "u"); } #region GetUserReportFields /// <summary> /// Проверяет, что GetUserReportFields возвращает OkObjectResult с результатом из IMediator. /// </summary> [Fact] public async Task GetUserReportFields_ShouldReturnOkWithResult() { // Arrange var expected = new[] { new UserReportFields { Id = 1, UserId = 2, ListId = 3, Name = "r", FieldIds = new[] { 1, 2 } } }; var request = new UserListRequest { UserId = 2, ListId = 3 }; var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<GetUserReportFieldsQuery>(q => q.UserId == 2 && q.ListId == 3), cancellationToken)) .ReturnsAsync(expected); // Act var result = await _controller.GetUserReportFields(request, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); ((OkObjectResult)result).Value.Should().BeEquivalentTo(expected); _mediatorMock.Verify(x => x.Send(It.Is<GetUserReportFieldsQuery>(q => q.UserId == 2 && q.ListId == 3), cancellationToken), Times.Once); } #endregion #region Add /// <summary> /// Проверяет, что Add отправляет AddUserReportFieldsCommand через IMediator и возвращает OkObjectResult с созданной сущностью. /// </summary> [Fact] public async Task Add_ShouldReturnOkWithNewEntity() { // Arrange var input = new UserReportFields { UserId = 2, ListId = 3, Name = "r", FieldIds = new[] { 1 } }; var created = new UserReportFields { Id = 10, UserId = 2, ListId = 3, Name = "r", FieldIds = new[] { 1 } }; var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<AddUserReportFieldsCommand>(c => c.ReportFields == input), cancellationToken)) .ReturnsAsync(created); // Act var result = await _controller.Add(input, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); ((OkObjectResult)result).Value.Should().BeEquivalentTo(created); _mediatorMock.Verify(x => x.Send(It.Is<AddUserReportFieldsCommand>(c => c.ReportFields == input), cancellationToken), Times.Once); } #endregion #region Update /// <summary> /// Проверяет, что Update отправляет UpdateUserReportFieldsCommand через IMediator и возвращает OkResult. /// </summary> [Fact] public async Task Update_ShouldReturnOk() { // Arrange var input = new UserReportFields { Id = 1, UserId = 2, ListId = 3, Name = "r", FieldIds = new[] { 1 } }; var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<UpdateUserReportFieldsCommand>(c => c.ReportFields == input), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.Update(input, cancellationToken); // Assert result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<UpdateUserReportFieldsCommand>(c => c.ReportFields == input), cancellationToken), Times.Once); } #endregion #region Delete /// <summary> /// Проверяет, что Delete отправляет DeleteUserReportFieldsCommand через IMediator и возвращает OkResult. /// </summary> [Fact] public async Task Delete_ShouldReturnOk() { // Arrange var id = 1; var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<DeleteUserReportFieldsCommand>(c => c.Id == id), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.Delete(id, cancellationToken); // Assert result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<DeleteUserReportFieldsCommand>(c => c.Id == id), cancellationToken), Times.Once); } #endregion } }