/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core.Tests/Controllers/FieldGroupsControllerTests.cs
155 строк
6 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using FluentAssertions; using Gridient.Core.Controllers; using Gridient.Core.Features.FieldGroups.Commands; using Gridient.Core.Features.FieldGroups.Queries; using Gridient.Core.Models; using Gridient.Core.Tests.Controllers; using Gridient.Core.Tests.Helpers.TestDataBuilders; using MediatR; using Microsoft.AspNetCore.Mvc; using Moq; using Xunit; namespace Gridient.Core.Tests.Controllers { public class FieldGroupsControllerTests : ControllerTestBase { private readonly Mock<IMediator> _mediatorMock; private readonly FieldGroupsController _controller; public FieldGroupsControllerTests() { _mediatorMock = new Mock<IMediator>(); _controller = new FieldGroupsController(_mediatorMock.Object); SetupControllerContext(_controller, "testuser"); } #region GetFieldGroups /// <summary> /// Проверяет, что метод GetFieldGroups возвращает группы полей для списка. /// </summary> [Fact] public async Task GetFieldGroups_WithValidListId_ShouldReturnOkWithGroups() { // Arrange var listId = 1; var cancellationToken = CancellationToken.None; var expectedGroups = new[] { FieldGroupsServiceTestDataBuilder.CreateFieldGroup(id: 1, listId: listId), FieldGroupsServiceTestDataBuilder.CreateFieldGroup(id: 2, listId: listId) }; _mediatorMock .Setup(x => x.Send(It.Is<GetFieldGroupsQuery>(q => q.ListId == listId), cancellationToken)) .ReturnsAsync(expectedGroups); // Act var result = await _controller.GetFieldGroups(listId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().BeEquivalentTo(expectedGroups); _mediatorMock.Verify(x => x.Send(It.Is<GetFieldGroupsQuery>(q => q.ListId == listId), cancellationToken), Times.Once); } #endregion #region GetFieldGroupsCount /// <summary> /// Проверяет, что метод GetFieldGroupsCount возвращает количество групп полей. /// </summary> [Fact] public async Task GetFieldGroupsCount_WithValidListId_ShouldReturnOkWithCount() { // Arrange var listId = 1; var cancellationToken = CancellationToken.None; var expectedCount = 5; _mediatorMock .Setup(x => x.Send(It.Is<GetFieldGroupsCountQuery>(q => q.ListId == listId), cancellationToken)) .ReturnsAsync(expectedCount); // Act var result = await _controller.GetFieldGroupsCount(listId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().Be(expectedCount); _mediatorMock.Verify(x => x.Send(It.Is<GetFieldGroupsCountQuery>(q => q.ListId == listId), cancellationToken), Times.Once); } #endregion #region Update /// <summary> /// Проверяет, что метод Update успешно обновляет группу полей и возвращает Ok. /// </summary> [Fact] public async Task Update_WithValidRequest_ShouldReturnOk() { // Arrange var listId = 1; var groupId = 1; var group = FieldGroupsServiceTestDataBuilder.CreateFieldGroup(id: groupId, listId: listId); var request = new FieldGroupRequest { ListId = listId, Group = group }; var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<UpdateFieldGroupCommand>(c => c.ListId == listId && c.GroupId == groupId), cancellationToken)) .ReturnsAsync(1); // Act var result = await _controller.Update(listId, groupId, request, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().Be(1); _mediatorMock.Verify(x => x.Send(It.Is<UpdateFieldGroupCommand>(c => c.ListId == listId && c.GroupId == groupId), cancellationToken), Times.Once); } #endregion #region Delete /// <summary> /// Проверяет, что метод Delete успешно удаляет группу полей и возвращает Ok. /// </summary> [Fact] public async Task Delete_WithValidId_ShouldReturnOk() { // Arrange var groupId = 1; var listId = 1; var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<DeleteFieldGroupCommand>(c => c.ListId == listId && c.GroupId == groupId), cancellationToken)) .ReturnsAsync(1); // Act var result = await _controller.Delete(listId, groupId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().Be(1); _mediatorMock.Verify(x => x.Send(It.Is<DeleteFieldGroupCommand>(c => c.ListId == listId && c.GroupId == groupId), cancellationToken), Times.Once); } #endregion } }