0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-29 18:21:08 +00:00
CleanArchitecture/CleanArchitecture.Application.Tests/Queries/Users/GetAllUsersQueryHandlerTests.cs
2023-09-02 12:34:08 +02:00

65 lines
1.7 KiB
C#

using System.Linq;
using System.Threading.Tasks;
using CleanArchitecture.Application.Queries.Users.GetAll;
using CleanArchitecture.Application.Tests.Fixtures.Queries.Users;
using CleanArchitecture.Application.ViewModels;
using FluentAssertions;
using Xunit;
namespace CleanArchitecture.Application.Tests.Queries.Users;
public sealed class GetAllUsersQueryHandlerTests
{
private readonly GetAllUsersTestFixture _fixture = new();
[Fact]
public async Task Should_Get_All_Users()
{
var user = _fixture.SetupUserAsync();
var query = new PageQuery
{
PageSize = 1,
Page = 1
};
var result = await _fixture.Handler.Handle(
new GetAllUsersQuery(query, user.Email),
default);
_fixture.VerifyNoDomainNotification();
result.PageSize.Should().Be(query.PageSize);
result.Page.Should().Be(query.Page);
result.Count.Should().Be(1);
var userViewModels = result.Items.ToArray();
userViewModels.Should().NotBeNull();
userViewModels.Should().ContainSingle();
userViewModels.FirstOrDefault()!.Id.Should().Be(_fixture.ExistingUserId);
}
[Fact]
public async Task Should_Not_Get_Deleted_Users()
{
_fixture.SetupDeletedUserAsync();
var query = new PageQuery
{
PageSize = 10,
Page = 1
};
var result = await _fixture.Handler.Handle(
new GetAllUsersQuery(query),
default);
_fixture.VerifyNoDomainNotification();
result.PageSize.Should().Be(query.PageSize);
result.Page.Should().Be(query.Page);
result.Count.Should().Be(0);
result.Items.Should().BeEmpty();
}
}