/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/Gridient.Core.Tests/Controllers/ViewsControllerTests.cs
144 строки
5 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
using FluentAssertions; using Gridient.Core.Controllers; using Gridient.Core.Features.Views.Commands; using Gridient.Core.Features.Views.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 ViewsControllerTests : ControllerTestBase { private readonly Mock<IMediator> _mediatorMock; private readonly ViewsController _controller; public ViewsControllerTests() { _mediatorMock = new Mock<IMediator>(); _controller = new ViewsController(_mediatorMock.Object); SetupControllerContext(_controller, "testuser"); } #region GetViews /// <summary> /// Проверяет, что метод GetViews возвращает представления для списка. /// </summary> [Fact] public async Task GetViews_WithValidListId_ShouldReturnOkWithViews() { // Arrange var listId = 1; var cancellationToken = CancellationToken.None; var expectedViews = new[] { ViewsServiceTestDataBuilder.CreateView(id: 1, listId: listId), ViewsServiceTestDataBuilder.CreateView(id: 2, listId: listId) }; _mediatorMock .Setup(x => x.Send(It.Is<GetViewsQuery>(q => q.UserLogin == "testuser" && q.ListId == listId), cancellationToken)) .ReturnsAsync(expectedViews); // Act var result = await _controller.GetViews(listId, cancellationToken); // Assert result.Should().BeOfType<OkObjectResult>(); var okResult = result as OkObjectResult; okResult!.Value.Should().BeEquivalentTo(expectedViews); _mediatorMock.Verify(x => x.Send(It.Is<GetViewsQuery>(q => q.UserLogin == "testuser" && q.ListId == listId), cancellationToken), Times.Once); } #endregion #region CreateView /// <summary> /// Проверяет, что метод CreateView успешно создает представление и возвращает Ok. /// </summary> [Fact] public async Task CreateView_WithValidRequest_ShouldReturnOk() { // Arrange var listId = 1; var request = ViewsServiceTestDataBuilder.CreateViewRequest(); var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<CreateViewCommand>(c => c.ListId == listId && c.Request.Title == request.Title), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.CreateView(listId, request, cancellationToken); // Assert result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<CreateViewCommand>(c => c.ListId == listId && c.Request.Title == request.Title), cancellationToken), Times.Once); } #endregion #region UpdateView /// <summary> /// Проверяет, что метод UpdateView успешно обновляет представление и возвращает Ok. /// </summary> [Fact] public async Task UpdateView_WithValidRequest_ShouldReturnOk() { // Arrange var listId = 1; var viewId = 2; var request = ViewsServiceTestDataBuilder.CreateUpdateViewRequest(); var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<UpdateViewCommand>(c => c.ListId == listId && c.ViewId == viewId), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.UpdateView(listId, viewId, request, cancellationToken); // Assert result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<UpdateViewCommand>(c => c.ListId == listId && c.ViewId == viewId), cancellationToken), Times.Once); } #endregion #region Delete /// <summary> /// Проверяет, что метод Delete успешно удаляет представление и возвращает Ok. /// </summary> [Fact] public async Task Delete_WithValidId_ShouldReturnOk() { // Arrange var listId = 1; var viewId = 1; var cancellationToken = CancellationToken.None; _mediatorMock .Setup(x => x.Send(It.Is<DeleteViewCommand>(c => c.ListId == listId && c.ViewId == viewId), cancellationToken)) .Returns(Task.CompletedTask); // Act var result = await _controller.Delete(listId, viewId, cancellationToken); // Assert result.Should().BeOfType<OkResult>(); _mediatorMock.Verify(x => x.Send(It.Is<DeleteViewCommand>(c => c.ListId == listId && c.ViewId == viewId), cancellationToken), Times.Once); } #endregion } }