Hi
🧩 Syntax:
using System;
using AutoMapper;
using BD.BDLibrary.Business.Interfaces;
using BD.BDLibrary.WebAPI.Controllers.api.V6;
using BD.BDLibrary.WebAPI.Models;
using Microsoft.AspNetCore.Mvc;
using Moq;
using Xunit;
namespace BD.BDLibrary.Tests.WebAPI.V6
{
public class DispensableCurationControllerTests
{
[Fact]
public void PostDispensableCurationRequest_ValidRequest_ReturnsOk()
{
// Arrange
var requestModel = new DispensableCurationRequestPostRequestModel
{
// Initialize with valid request data here
};
var serviceMock = new Mock<IDispensableCurationService>();
var mapperMock = new Mock<IMapper>();
var controller = new DispensableCurationController(serviceMock.Object, mapperMock.Object);
// Configure mocks
serviceMock.Setup(s => s.AddDispensableCurationRequest(It.IsAny<DispensableCurationRequestPostRequestDTO>()))
.Returns(new DispensableCurationRequestPostResponseDTO
{
// Initialize with response data here
});
// Act
var result = controller.PostDispensableCurationRequest(requestModel) as OkObjectResult;
// Assert
Assert.NotNull(result);
Assert.Equal(StatusCodes.Status200OK, result.StatusCode);
// You can further assert the response content if needed
var responseObject = result.Value as DispensableCurationRequestPostResponseModel;
Assert.NotNull(responseObject);
// Add assertions for response object properties
}
[Fact]
public void PostDispensableCurationRequest_InvalidRequest_ReturnsBadRequest()
{
// Arrange
var serviceMock = new Mock<IDispensableCurationService>();
var mapperMock = new Mock<IMapper>();
var controller = new DispensableCurationController(serviceMock.Object, mapperMock.Object);
// Act
var result = controller.PostDispensableCurationRequest(null) as BadRequestObjectResult;
// Assert
Assert.NotNull(result);
Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode);
}
[Fact]
public void PostDispensableCurationRequest_InvalidModelState_ReturnsBadRequest()
{
// Arrange
var requestModel = new DispensableCurationRequestPostRequestModel
{
// Initialize with invalid request data here
};
var serviceMock = new Mock<IDispensableCurationService>();
var mapperMock = new Mock<IMapper>();
var controller = new DispensableCurationController(serviceMock.Object, mapperMock.Object);
controller.ModelState.AddModelError("PropertyName", "Error Message");
// Act
var result = controller.PostDispensableCurationRequest(requestModel) as BadRequestObjectResult;
// Assert
Assert.NotNull(result);
Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode);
}
[Fact]
public void PostDispensableCurationRequest_ServiceThrowsException_ReturnsBadRequest()
{
// Arrange
var requestModel = new DispensableCurationRequestPostRequestModel
{
// Initialize with valid request data here
};
var serviceMock = new Mock<IDispensableCurationService>();
var mapperMock = new Mock<IMapper>();
var controller = new DispensableCurationController(serviceMock.Object, mapperMock.Object);
// Configure mock to throw an exception
serviceMock.Setup(s => s.AddDispensableCurationRequest(It.IsAny<DispensableCurationRequestPostRequestDTO>()))
.Throws(new Exception("Some error message"));
// Act
var result = controller.PostDispensableCurationRequest(requestModel) as BadRequestObjectResult;
// Assert
Assert.NotNull(result);
Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode);
}
}
}