Backend/e-suite.Modules.FormsManager/e_suite.Modules.Form.ManagerUnitTest/FormsManagerUnitTests/EditFormUnitTest.cs
2026-01-20 21:50:10 +00:00

192 lines
5.5 KiB
C#

using e_suite.API.Common.exceptions;
using e_suite.API.Common.models;
using e_suite.Database.Core.Tables.Forms;
using eSuite.Core.Miscellaneous;
using NUnit.Framework;
namespace e_suite.Modules.FormsManagerUnitTests.FormsManagerUnitTests;
public class EditFormUnitTest : FormsManagerUnitTestBase
{
[SetUp]
public async Task SetUp()
{
await base.Setup();
}
[Test]
public async Task EditForm_NormalConditions_SaveChanges()
{
//Arrange
var form = new FormTemplate
{
Guid = Guid.NewGuid(),
Deleted = false,
Id = 1,
Name = "Test",
};
var formVersion = new FormTemplateVersion
{
Deleted = false,
FormDefinition = "testttt",
Id = 1,
Guid = Guid.NewGuid(),
TemplateId = 1,
Template = form
};
form.Versions = [ formVersion ];
_fakeformRepository.FormTemplateVersions.Add(formVersion);
_fakeformRepository.FormTemplates.Add(form);
var editForm = new EditFormTemplate
{
Definition = "EditedDef",
Name = "Edited",
Id = new GeneralIdRef
{
Id = 1
}
};
//Act
await _formManager.EditFormTemplateAsync(auditResult, editForm, default);
//Assert
Assert.Multiple(() =>
{
Assert.That(_fakeformRepository.FormTemplateVersions, Has.Count.EqualTo(2));
Assert.That(_fakeformRepository.FormTemplateVersions[1].Version, Is.EqualTo(1));
Assert.That(_fakeformRepository.FormTemplates[0].Name, Is.EqualTo("Edited"));
});
}
[Test]
public void EditForm_NotExistingForm_ThrowException()
{
//Arrange
var editForm = new EditFormTemplate
{
Definition = "EditedDef",
Name = "Edited",
Id = new GeneralIdRef
{
Id = 1
}
};
//Act & Assert
Assert.ThrowsAsync<NotFoundException>(() => _formManager.EditFormTemplateAsync(auditResult, editForm, default));
}
[Test]
public async Task EditForm_With3Version_SaveChangesAsync()
{
//Arrange
var form = new FormTemplate
{
Guid = Guid.NewGuid(),
Deleted = false,
Id = 1,
Name = "Test",
};
var formVersion = new FormTemplateVersion
{
Deleted = false,
FormDefinition = "testttt",
Id = 1,
Guid = Guid.NewGuid(),
TemplateId = 1,
Template = form,
Version = 1
};
var formVersionTwo = new FormTemplateVersion
{
Deleted = false,
FormDefinition = "testttt",
Id = 2,
Guid = Guid.NewGuid(),
TemplateId = 1,
Template = form,
Version = 2
};
var formVersionThree = new FormTemplateVersion
{
Deleted = false,
FormDefinition = "testttt",
Id = 3,
Guid = Guid.NewGuid(),
TemplateId = 1,
Template = form,
Version = 3
};
var editForm = new EditFormTemplate
{
Definition = "EditedDef",
Name = "Edited",
Id = new GeneralIdRef
{
Id = 1
}
};
form.Versions = [formVersionThree];
_fakeformRepository.FormTemplateVersions.AddRange([formVersion, formVersionTwo, formVersionThree ]);
_fakeformRepository.FormTemplates.Add(form);
//Act
await _formManager.EditFormTemplateAsync(auditResult, editForm, default);
//Assert
Assert.Multiple(() =>
{
Assert.That(_fakeformRepository.FormTemplateVersions, Has.Count.EqualTo(4));
Assert.That(_fakeformRepository.FormTemplateVersions[3].Version, Is.EqualTo(4));
Assert.That(_fakeformRepository.FormTemplates[0].Name, Is.EqualTo("Edited"));
});
}
[Test]
public async Task EditForm_OnlyNameDosentCreateANewVersion()
{
//Arrange
var editFormName = "SOmeeese";
var form = new FormTemplate
{
Guid = Guid.NewGuid(),
Deleted = false,
Id = 1,
Name = "Test",
};
var formVersion = new FormTemplateVersion
{
Deleted = false,
FormDefinition = editFormName,
Id = 1,
Guid = Guid.NewGuid(),
TemplateId = 1,
Template = form
};
form.Versions = [ formVersion ];
_fakeformRepository.FormTemplateVersions.Add(formVersion);
_fakeformRepository.FormTemplates.Add(form);
var editForm = new EditFormTemplate
{
Name = editFormName,
Id = new GeneralIdRef
{
Id = 1
}
};
//Act
await _formManager.EditFormTemplateAsync(auditResult, editForm, default);
//Asserts
Assert.Multiple(() =>
{
Assert.That(form.Name, Is.EqualTo(editFormName));
Assert.That(_fakeformRepository.FormTemplates, Has.Count.EqualTo(1));
});
}
}