You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.4 KiB
97 lines
3.4 KiB
using Xunit;
|
|
using Moq;
|
|
using System.Linq;
|
|
using System.Collections.Generic;
|
|
using Infrastructure;
|
|
using Infrastructure.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Server.Dto.Request;
|
|
using Server.Services;
|
|
using Shared.Criteria;
|
|
|
|
public class EventServicesTests
|
|
{
|
|
private readonly Mock<AlumniDbContext> _mockContext;
|
|
private readonly EventServices _eventServices;
|
|
|
|
public EventServicesTests()
|
|
{
|
|
var events = new List<EventEntity>
|
|
{
|
|
new EventEntity { Id = "1", Title = "Event1", Description = "Description1", Date = DateTime.Now, nbPlaces = 100 },
|
|
new EventEntity { Id = "2", Title = "Event2", Description = "Description2", Date = DateTime.Now.AddDays(1), nbPlaces = 200 }
|
|
}.AsQueryable();
|
|
|
|
var mockSet = new Mock<DbSet<EventEntity>>();
|
|
mockSet.As<IQueryable<EventEntity>>().Setup(m => m.Provider).Returns(events.Provider);
|
|
mockSet.As<IQueryable<EventEntity>>().Setup(m => m.Expression).Returns(events.Expression);
|
|
mockSet.As<IQueryable<EventEntity>>().Setup(m => m.ElementType).Returns(events.ElementType);
|
|
mockSet.As<IQueryable<EventEntity>>().Setup(m => m.GetEnumerator()).Returns(events.GetEnumerator());
|
|
|
|
_mockContext = new Mock<AlumniDbContext>();
|
|
_mockContext.Setup(c => c.Events).Returns(mockSet.Object);
|
|
|
|
_eventServices = new EventServices(_mockContext.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task GetEventById_ReturnsEvent_WhenIdExists()
|
|
{
|
|
var result = await _eventServices.GetEventById("1");
|
|
Assert.NotNull(result);
|
|
Assert.Equal("1", result.Id);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task GetEventById_ReturnsNull_WhenIdDoesNotExist()
|
|
{
|
|
var result = await _eventServices.GetEventById("3");
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task GetEvents_ReturnsEvents_WhenTitleExists()
|
|
{
|
|
var result = await _eventServices.GetEvents("Event1", 1, 1, EventOrderCriteria.Date, true);
|
|
Assert.Single(result.Events);
|
|
Assert.Equal("Event1", result.Events.First().Title);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task GetEvents_ReturnsEmpty_WhenTitleDoesNotExist()
|
|
{
|
|
var result = await _eventServices.GetEvents("Event3", 1, 1, EventOrderCriteria.Date, true);
|
|
Assert.Empty(result.Events);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task UpdateEvent_ReturnsUpdatedEvent_WhenIdExists()
|
|
{
|
|
var eventDto = new RequestEventDto { Title = "UpdatedEvent", Description = "UpdatedDescription", Date = DateTime.Now, nbMaxRegistrations = 150 };
|
|
var result = await _eventServices.UpdateEvent("1", eventDto);
|
|
Assert.NotNull(result);
|
|
Assert.Equal("UpdatedEvent", result.Title);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task UpdateEvent_ReturnsNull_WhenIdDoesNotExist()
|
|
{
|
|
var eventDto = new RequestEventDto { Title = "UpdatedEvent", Description = "UpdatedDescription", Date = DateTime.Now, nbMaxRegistrations = 150 };
|
|
var result = await _eventServices.UpdateEvent("3", eventDto);
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task DeleteEvent_ReturnsTrue_WhenIdExists()
|
|
{
|
|
var result = await _eventServices.DeleteEvent("1");
|
|
Assert.True(result);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task DeleteEvent_ReturnsFalse_WhenIdDoesNotExist()
|
|
{
|
|
var result = await _eventServices.DeleteEvent("3");
|
|
Assert.False(result);
|
|
}
|
|
} |