Files
CleanArchitecture/CleanArchitecture/CleanArchitecture.Application.UnitTests/Features/Streamers/Commands/UpdateStreamer/UpdateStreamerCommandHandlerXUnitTests.cs
Alejandro Sarmiento 9b5ddee951 Unit tests + Dockerfile
2024-02-29 21:52:46 +01:00

62 lines
2.2 KiB
C#

using AutoMapper;
using CleanArchitecture.Application.Contracts.Infrastructure;
using CleanArchitecture.Application.Features.Streamers.Commands.UpdateStreamer;
using CleanArchitecture.Application.Mappings;
using CleanArchitecture.Application.UnitTests.Mocks;
using CleanArchitecture.Domain;
using CleanArchitecture.Infrastructure.Repositories;
using Microsoft.Extensions.Logging;
using Moq;
using Shouldly;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace CleanArchitecture.Application.UnitTests.Features.Streamers.Commands.UpdateStreamer
{
public class UpdateStreamerCommandHandlerXUnitTests
{
private readonly IMapper mapper;
private readonly Mock<UnitOfWork> mockUnitOfWork;
private readonly Mock<IEmailService> emailService;
private readonly Mock<ILogger<UpdateStreamerCommandHandler>> logger;
public UpdateStreamerCommandHandlerXUnitTests()
{
mockUnitOfWork = MockUnitOfWork.GetUnitOfWork();
var mapperConfiguration = new MapperConfiguration(cfg =>
{
cfg.AddProfile<MappingProfile>();
});
mapper = mapperConfiguration.CreateMapper();
emailService = new Mock<IEmailService>();
logger = new Mock<ILogger<UpdateStreamerCommandHandler>>();
MockStreamerRepository.AddDataStreamerRepository(mockUnitOfWork.Object.StreamerDbContext);
}
[Fact]
public async Task UpdateStreamerTest()
{
var handler = new UpdateStreamerCommandHandler(mockUnitOfWork.Object, mapper, logger.Object);
var request = new UpdateStreamerCommand()
{
Id = Guid.Parse("edfe00d5-7599-4788-b52a-acc2a683b188"),
Nombre = "AlexStream2",
Url = "https://AlexStream2.com"
};
var result = await handler.Handle(request, CancellationToken.None);
if(result == null)
{
throw new Exception("Result is null");
}
result.ShouldBeOfType<Streamer>();
result.Nombre.ShouldBe("AlexStream2");
}
}
}