/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core.Tests/Controllers/ListsControllerTests.cs
148 строк
5 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using FluentAssertions; using Gridient.Core.Controllers; using Gridient.Core.Features.Lists.Commands; using Gridient.Core.Features.Lists.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 ListsControllerTests : ControllerTestBase { private readonly Mock<IMediator> _mediatorMock; private readonly ListsController _controller; public ListsControllerTests() { _mediatorMock = new Mock<IMediator>(); _controller = new ListsController(_mediatorMock.Object); SetupControllerContext(_controller, "testuser"); } #region GetLists /// <summary> /// Проверяет, что метод GetLists возвращает список списков. /// </summary> [Fact] public async Task GetLists_ShouldReturnOkWithLists() { // Arrange var cancellationToken = CancellationToken.None; var expectedLists = new[] { ListsServiceTestDataBuilder.CreateList(id: 1), ListsServiceTestDataBuilder.CreateList(id: 2) }; _mediatorMock .Setup(x => x.Send(It.Is<GetListsQuery>(q => q.UserLogin == "testuser"), cancellationToken)) .ReturnsAsync(expectedLists); // Act var result = await _controller.GetLists(cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().BeEquivalentTo(expectedLists); _mediatorMock.Verify(x => x.Send(It.Is<GetListsQuery>(q => q.UserLogin == "testuser"), cancellationToken), Times.Once); } #endregion #region CreateList /// <summary> /// Проверяет, что метод CreateList успешно создает список и возвращает Ok. /// </summary> [Fact] public async Task CreateList_WithValidRequest_ShouldReturnOk() { // Arrange var request = ListsServiceTestDataBuilder.CreateListRequest(); var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<CreateListCommand>(c => c.Request.Title == request.Title && c.Request.ListType == request.ListType && c.Request.MaxVersions == request.MaxVersions), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.CreateList(request, cancellationToken); // Assert result.Result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<CreateListCommand>(c => c.Request.Title == request.Title && c.Request.ListType == request.ListType && c.Request.MaxVersions == request.MaxVersions), cancellationToken), Times.Once); } #endregion #region UpdateList /// <summary> /// Проверяет, что метод UpdateList успешно обновляет список и возвращает Ok. /// </summary> [Fact] public async Task UpdateList_WithValidRequest_ShouldReturnOk() { // Arrange var listId = 1; var request = ListsServiceTestDataBuilder.CreateList(id: listId); var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<UpdateListCommand>(c => c.List.Id == listId), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.UpdateList(listId, request, cancellationToken); // Assert result.Result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<UpdateListCommand>(c => c.List.Id == listId), cancellationToken), Times.Once); } #endregion #region Delete /// <summary> /// Проверяет, что метод Delete успешно удаляет список и возвращает Ok. /// </summary> [Fact] public async Task Delete_WithValidId_ShouldReturnOk() { // Arrange var listId = 1; var cancellationToken = CancellationToken.None; SetupControllerContext(_controller, "admin"); _mediatorMock .Setup(x => x.Send(It.Is<DeleteListCommand>(c => c.UserLogin == "admin" && c.ListId == listId), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.Delete(listId, cancellationToken); // Assert result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<DeleteListCommand>(c => c.UserLogin == "admin" && c.ListId == listId), cancellationToken), Times.Once); } #endregion } }