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.
Verax_API_EF/Verax_API_EF/Verax_API_EF/API_Unit_Test/FormulaireControllerTests.cs

111 lines
3.4 KiB

using API.Controllers;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Model;
using Moq;
namespace API_Unit_Test;
public class FormulaireControllerTests
{
private readonly Mock<IDataManager> _mockDataManager;
private readonly Mock<ILogger<FormulaireController>> _mockLogger;
private readonly FormulaireController _controller;
public FormulaireControllerTests()
{
_mockDataManager = new Mock<IDataManager>();
_mockLogger = new Mock<ILogger<FormulaireController>>();
_controller = new FormulaireController(_mockDataManager.Object, _mockLogger.Object);
}
[Fact]
public async Task GetAllForm_ReturnsOk()
{
// Arrange
_mockDataManager.Setup(dm => dm.FormulaireService.GetAllForm(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<FormOrderCriteria>()))
.ReturnsAsync(new List<Formulaire>());
// Act
var result = await _controller.GetAllForm();
// Assert
Assert.IsType<OkObjectResult>(result);
}
[Fact]
public async Task GetById_ReturnsOk()
{
// Arrange
var testFormId = 1L;
_mockDataManager.Setup(dm => dm.FormulaireService.GetById(testFormId))
.ReturnsAsync(new Formulaire { Id = testFormId });
// Act
var result = await _controller.GetById(testFormId);
// Assert
Assert.IsType<OkObjectResult>(result);
}
[Fact]
public async Task CreateForm_ReturnsOk()
{
// Arrange
var form = new Formulaire { Theme = "Test" };
_mockDataManager.Setup(dm => dm.FormulaireService.CreateForm(form))
.ReturnsAsync(form);
// Act
var result = await _controller.CreateForm(form);
// Assert
Assert.IsType<OkObjectResult>(result);
}
[Fact]
public async Task DeleteForm_ReturnsOk()
{
// Arrange
var testFormId = 1L;
_mockDataManager.Setup(dm => dm.FormulaireService.DeleteForm(testFormId))
.ReturnsAsync(new Formulaire { Id = testFormId });
// Act
var result = await _controller.DeleteForm(testFormId);
// Assert
Assert.IsType<OkObjectResult>(result);
}
[Fact]
public async Task UpdateForm_ReturnsOk()
{
// Arrange
var testFormId = 1L;
var form = new Formulaire { Theme = "Updated" };
_mockDataManager.Setup(dm => dm.FormulaireService.UpdateForm(testFormId, form))
.ReturnsAsync(form);
// Act
var result = await _controller.UpdateForm(testFormId, form);
// Assert
Assert.IsType<OkObjectResult>(result);
}
[Fact]
public async Task GetAllForm_ThrowsException_ReturnsBadRequest()
{
// Arrange
_mockDataManager.Setup(dm => dm.FormulaireService.GetAllForm(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<FormOrderCriteria>()))
.ThrowsAsync(new Exception("Test exception"));
// Act
var result = await _controller.GetAllForm();
// Assert
Assert.IsType<BadRequestObjectResult>(result);
}
}