42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
using FluentAssertions;
|
|
using Knot.Modules.Profiles.Application.Profiles.Commands.UpdateProfile;
|
|
using Knot.Modules.Profiles.Domain;
|
|
using Knot.Modules.Profiles.Application.Abstractions;
|
|
using Knot.Shared.Kernel;
|
|
using NSubstitute;
|
|
using Xunit;
|
|
using System;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Knot.Modules.Profiles.UnitTests;
|
|
|
|
public class UpdateProfileCommandHandlerTests
|
|
{
|
|
private readonly IProfileRepository _profileRepository;
|
|
private readonly IProfilesUnitOfWork _unitOfWork;
|
|
private readonly UpdateProfileCommandHandler _handler;
|
|
|
|
public UpdateProfileCommandHandlerTests()
|
|
{
|
|
_profileRepository = Substitute.For<IProfileRepository>();
|
|
_unitOfWork = Substitute.For<IProfilesUnitOfWork>();
|
|
_handler = new UpdateProfileCommandHandler(_profileRepository, _unitOfWork);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Handle_ShouldReturnError_WhenProfileNotFound()
|
|
{
|
|
// Arrange
|
|
var command = new UpdateProfileCommand(Guid.NewGuid(), "FirstName", "LastName", "Bio");
|
|
_profileRepository.GetByIdAsync(command.UserId, Arg.Any<CancellationToken>()).Returns((UserProfile?)null);
|
|
|
|
// Act
|
|
var result = await _handler.Handle(command, CancellationToken.None);
|
|
|
|
// Assert
|
|
result.IsFailure.Should().BeTrue();
|
|
result.Error.Should().Be(ProfileErrors.NotFound);
|
|
}
|
|
}
|