/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core.Tests/Controllers/FieldsControllerTests.cs
217 строк
8 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using FluentAssertions; using Gridient.Core.Controllers; using Gridient.Core.Features.Fields.Commands; using Gridient.Core.Features.Fields.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 FieldsControllerTests : ControllerTestBase { private readonly Mock<IMediator> _mediatorMock; private readonly FieldsController _controller; public FieldsControllerTests() { _mediatorMock = new Mock<IMediator>(); _controller = new FieldsController(_mediatorMock.Object); SetupControllerContext(_controller, "testuser"); } #region GetFields /// <summary> /// Проверяет, что метод GetFields возвращает поля списка. /// </summary> [Fact] public async Task GetFields_WithValidListId_ShouldReturnOkWithFields() { // Arrange var listId = 1; var cancellationToken = CancellationToken.None; var expectedFields = new[] { FieldsServiceTestDataBuilder.CreateField(id: 1, listId: listId), FieldsServiceTestDataBuilder.CreateField(id: 2, listId: listId) }; _mediatorMock .Setup(x => x.Send(It.Is<GetFieldsQuery>(q => q.ListId == listId), cancellationToken)) .ReturnsAsync(expectedFields); // Act var result = await _controller.GetFields(listId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().BeEquivalentTo(expectedFields); _mediatorMock.Verify(x => x.Send(It.Is<GetFieldsQuery>(q => q.ListId == listId), cancellationToken), Times.Once); } #endregion #region GetDefaultViewFields /// <summary> /// Проверяет, что метод GetDefaultViewFields возвращает поля для представления по умолчанию. /// </summary> [Fact] public async Task GetDefaultViewFields_WithValidListId_ShouldReturnOkWithViewFields() { // Arrange var listId = 1; var cancellationToken = CancellationToken.None; var expectedViewFields = new[] { new ViewField { Id = 1, Name = "Field1", Title = "Field 1" }, new ViewField { Id = 2, Name = "Field2", Title = "Field 2" } }; _mediatorMock .Setup(x => x.Send(It.Is<GetDefaultViewFieldsQuery>(q => q.UserLogin == "testuser" && q.ListId == listId), cancellationToken)) .ReturnsAsync(expectedViewFields); // Act var result = await _controller.GetDefaultViewFields(listId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().BeEquivalentTo(expectedViewFields); _mediatorMock.Verify(x => x.Send(It.Is<GetDefaultViewFieldsQuery>(q => q.UserLogin == "testuser" && q.ListId == listId), cancellationToken), Times.Once); } #endregion #region UpdateField /// <summary> /// Проверяет, что метод UpdateField успешно обновляет поле и возвращает Ok. /// </summary> [Fact] public async Task UpdateField_WithValidField_ShouldReturnOk() { // Arrange var listId = 1; var fieldId = 1; var field = FieldsServiceTestDataBuilder.CreateField(id: fieldId, listId: listId); var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<UpdateFieldCommand>(c => c.ListId == listId && c.FieldId == fieldId), cancellationToken)) .ReturnsAsync(1); // Act var result = await _controller.UpdateField(listId, fieldId, field, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().Be(1); _mediatorMock.Verify(x => x.Send(It.Is<UpdateFieldCommand>(c => c.ListId == listId && c.FieldId == fieldId), cancellationToken), Times.Once); } #endregion #region GetGroupCount /// <summary> /// Проверяет, что метод GetGroupCount возвращает количество полей в группе. /// </summary> [Fact] public async Task GetGroupCount_WithValidParameters_ShouldReturnOkWithCount() { // Arrange var listId = 1; var groupId = 1; var cancellationToken = CancellationToken.None; var expectedCount = 5; _mediatorMock .Setup(x => x.Send(It.Is<GetGroupCountQuery>(q => q.ListId == listId && q.GroupId == groupId), cancellationToken)) .ReturnsAsync(expectedCount); // Act var result = await _controller.GetGroupCount(listId, groupId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().Be(expectedCount); _mediatorMock.Verify(x => x.Send(It.Is<GetGroupCountQuery>(q => q.ListId == listId && q.GroupId == groupId), cancellationToken), Times.Once); } #endregion #region Delete /// <summary> /// Проверяет, что метод Delete успешно удаляет поле и возвращает Ok. /// </summary> [Fact] public async Task Delete_WithValidId_ShouldReturnOk() { // Arrange var listId = 1; var fieldId = 1; var cancellationToken = CancellationToken.None; SetupControllerContext(_controller, "admin"); _mediatorMock .Setup(x => x.Send(It.Is<DeleteFieldCommand>(c => c.ListId == listId && c.FieldId == fieldId), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.Delete(listId, fieldId, cancellationToken); // Assert result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<DeleteFieldCommand>(c => c.ListId == listId && c.FieldId == fieldId), cancellationToken), Times.Once); } #endregion #region GetFilterFields /// <summary> /// Проверяет, что метод GetFilterFields возвращает поля для фильтрации. /// </summary> [Fact] public async Task GetFilterFields_WithValidListId_ShouldReturnOkWithFilterFields() { // Arrange var listId = 1; var cancellationToken = CancellationToken.None; var expectedFilterFields = new[] { new FilterField { Id = 1, Name = "Field1", Title = "Field 1" }, new FilterField { Id = 2, Name = "Field2", Title = "Field 2" } }; _mediatorMock .Setup(x => x.Send(It.Is<GetFilterFieldsQuery>(q => q.ListId == listId), cancellationToken)) .ReturnsAsync(expectedFilterFields); // Act var result = await _controller.GetFilterFields(listId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().BeEquivalentTo(expectedFilterFields); _mediatorMock.Verify(x => x.Send(It.Is<GetFilterFieldsQuery>(q => q.ListId == listId), cancellationToken), Times.Once); } #endregion } }