Backend/e-suite.API/eSuite.API.UnitTests/Controllers/FormsControllerUnitTests/CreateFormsTemplateUnitTests.cs
2026-01-20 21:50:10 +00:00

84 lines
2.9 KiB
C#

using e_suite.API.Common.exceptions;
using e_suite.API.Common.models;
using e_suite.Database.Audit;
using Microsoft.AspNetCore.Mvc;
using Moq;
using NUnit.Framework;
namespace eSuite.API.UnitTests.Controllers.FormsControllerUnitTests;
[TestFixture]
public class CreateFormsTemplateUnitTests : FormsControllerTestBase
{
[SetUp]
public override async Task Setup()
=> await base.Setup();
[Test]
public async Task CreateCustomField_WithPredifaindGuid_RetunrOK()
{
//Arrange
var formGuid = new Guid("ff738e5b-1cf4-4530-8543-280b22b7f38f");
var formDefinition = "TestDef";
var formName = "TestName";
var createFormTemplat = new CreateFormTemplate
{
Definition = formDefinition,
Name = formName,
Guid = formGuid,
};
//Act
var res = await _formsController.CreateFormTemplate(createFormTemplat);
//Assert
_formsManagerMock!.Verify(x => x.CreateFormTemplateAsync(It.IsAny<AuditUserDetails>(), It.Is<CreateFormTemplate>(f => f.Name == formName && f.Definition == formDefinition && f.Guid == formGuid), It.IsAny<CancellationToken>()));
Assert.That(res.GetType(), Is.EqualTo(typeof(OkResult)));
}
[Test]
public async Task CreateCustomfield_WithOutAPredifiandGuid_rturnsOk()
{
//Arrange
var formDefinition = "TestDef";
var formName = "TestName";
var createFormTemplat = new CreateFormTemplate
{
Definition = formDefinition,
Name = formName,
};
//Act
var res = await _formsController.CreateFormTemplate(createFormTemplat);
//Assert
_formsManagerMock!.Verify(x => x.CreateFormTemplateAsync(It.IsAny<AuditUserDetails>(), It.Is<CreateFormTemplate>(f => f.Name == formName && f.Definition == formDefinition && f.Guid == null), It.IsAny<CancellationToken>()));
Assert.That(res.GetType(), Is.EqualTo(typeof(OkResult)));
}
[Test]
public void CreateCustomField_WithExistingGuid_ReturnsBadRequest()
{
//Arrange
var formGuid = new Guid("c218dd57-e641-4e82-9d2e-28e952360fdf");
var formDefinition = "TestDef";
var formName = "TestName";
const string errorMesage = "Guid error";
var createFormTemplat = new CreateFormTemplate
{
Definition = formDefinition,
Name = formName,
Guid = formGuid,
};
_formsManagerMock?.Setup(x => x.CreateFormTemplateAsync(It.IsAny<AuditUserDetails>(), It.Is<CreateFormTemplate>(x => x.Guid == formGuid), It.IsAny<CancellationToken>())).ThrowsAsync(new ExistsException(errorMesage));
//Assert
Assert.ThrowsAsync<ExistsException>(async () =>
{
//Act
var res = await _formsController.CreateFormTemplate(createFormTemplat);
});
}
}