From e062d151013ba0bfb77a619781a1e32b5a7399ac Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Mon, 2 Feb 2026 23:17:46 +0000 Subject: [PATCH] Change the ASP.net pages to return partial views, and be compatible with the htmlIslands react component. --- .../e-suite.API.Common/ICustomFieldManager.cs | 4 +- .../models/EditCustomFields.cs | 40 ++++++++++++++++- .../LoginGetUnitTests.cs | 8 ++-- .../LoginPostUnitTests.cs | 20 ++++----- .../ProfileGetUnitTests.cs | 4 +- .../Controllers/AccountController.cs | 6 +-- .../Controllers/CustomFieldsController.cs | 23 ++++++++++ .../eSuite.API/Views/Account/Login.cshtml | 4 +- .../eSuite.API/Views/Account/Profile.cshtml | 4 +- .../CustomFieldManager.cs | 44 ++++++++++++++++--- .../CustomFieldValuesListUnitTests.cs | 2 +- ...ormTemplateByGeneralRefIdAsyncUnitTests.cs | 2 +- ...GetGlossaryByGeneralRefIdAsyncUnitTests.cs | 2 +- ...teToCustomFieldDefinitionAsyncUnitTests.cs | 2 +- .../CreateCustomFieldUnitTest.cs | 4 +- .../DeactivateCustomFieldUnitTest.cs | 6 +-- .../EditCustomFieldlUnitTests.cs | 2 +- .../GetCustomByIdFieldUnitTest.cs | 2 +- .../GetFieldByNameUnitTest.cs | 4 +- .../GetFieldsAsyncUnitTests.cs | 2 +- .../CustomFieldsTestBase.cs | 13 +++++- 21 files changed, 149 insertions(+), 49 deletions(-) diff --git a/e-suite.API.Common/e-suite.API.Common/ICustomFieldManager.cs b/e-suite.API.Common/e-suite.API.Common/ICustomFieldManager.cs index df024d9..bc4117d 100644 --- a/e-suite.API.Common/e-suite.API.Common/ICustomFieldManager.cs +++ b/e-suite.API.Common/e-suite.API.Common/ICustomFieldManager.cs @@ -10,10 +10,12 @@ public interface ICustomFieldManager Task> GetFieldsAsync(Paging paging, CancellationToken cancellationToken); Task CreateFieldAsync(AuditUserDetails auditUserDetails, CreateCustomField custimField, CancellationToken cancellationToken); Task EditFieldAsync(AuditUserDetails auditUserDetails, EditCustomFields custimField, CancellationToken cancellationToken); - + Task PatchFieldAsync(AuditUserDetails auditUserDetails, IGeneralIdRef Id, PatchCustomFields customField, CancellationToken cancellationToken); + Task GetFieldAsync(IGeneralIdRef id, CancellationToken cancellationToken); Task GetFieldAsync(string name, CancellationToken cancellationToken); Task DeleteFieldAsync(AuditUserDetails auditUserDetails, IGeneralIdRef id, CancellationToken cancellationToken); + } diff --git a/e-suite.API.Common/e-suite.API.Common/models/EditCustomFields.cs b/e-suite.API.Common/e-suite.API.Common/models/EditCustomFields.cs index f2c1052..a54ec2c 100644 --- a/e-suite.API.Common/e-suite.API.Common/models/EditCustomFields.cs +++ b/e-suite.API.Common/e-suite.API.Common/models/EditCustomFields.cs @@ -1,6 +1,9 @@ -using System.Text.Json.Serialization; -using e_suite.API.Common.models.@base; +using e_suite.API.Common.models.@base; +using e_suite.Database.Core.Tables.UserManager; +using eSuite.Core.CustomFields; using eSuite.Core.Miscellaneous; +using System.Text.Json.Serialization; +using e_suite.Database.Core.Tables.CustomFields; namespace e_suite.API.Common.models; @@ -10,3 +13,36 @@ public class EditCustomFields : CustomFieldBase public GeneralIdRef Id { get; set; } = new GeneralIdRef(); } + +[Patches(typeof(CustomField))] +public class PatchCustomFields +{ + [JsonPropertyName("fieldType")] + [PatchMap(nameof(CustomField.FieldType))] + public FieldType? FieldType { get; set; } + + //Todo add support for this + //[JsonPropertyName("refElementId")] + //public GeneralIdRef? RefElementId { get; set; } + + [JsonPropertyName("name")] + [PatchMap(nameof(CustomField.Name))] + public string? Name { get; set; } = string.Empty; + + [JsonPropertyName("defaultValue")] + [PatchMap(nameof(CustomField.DefaultValue))] + public string? DefaultValue { get; set; } = string.Empty; + + [JsonPropertyName("minEntries")] + [PatchMap(nameof(CustomField.MinEntries))] + public long? MinEntries { get; set; } + + [JsonPropertyName("maxEntries")] + [PatchMap(nameof(CustomField.MaxEntries))] + public long? MaxEntries { get; set; } + + //Todo add support for this + //[JsonPropertyName("params")] + //[PatchMap(nameof(CustomField.))] + //public string? Parameters { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginGetUnitTests.cs b/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginGetUnitTests.cs index f8c2f12..7178791 100644 --- a/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginGetUnitTests.cs +++ b/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginGetUnitTests.cs @@ -27,8 +27,8 @@ public class LoginGetUnitTests : AccountControllerTestBase var response = await _accountController.LoginGet(login, CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Login")); Assert.That(viewResult?.Model, Is.TypeOf()); @@ -56,8 +56,8 @@ public class LoginGetUnitTests : AccountControllerTestBase var response = await _accountController.LoginGet(login, CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Login")); Assert.That(viewResult?.Model, Is.TypeOf()); diff --git a/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginPostUnitTests.cs b/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginPostUnitTests.cs index 23fb4b6..c35e064 100644 --- a/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginPostUnitTests.cs +++ b/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/LoginPostUnitTests.cs @@ -28,8 +28,8 @@ public class LoginPostUnitTests : AccountControllerTestBase var response = await _accountController.LoginPost(login, CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Login")); Assert.That(viewResult?.Model, Is.TypeOf()); @@ -75,8 +75,8 @@ public class LoginPostUnitTests : AccountControllerTestBase var response = await _accountController.LoginPost(login, CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Login")); Assert.That(viewResult?.Model, Is.TypeOf()); @@ -101,8 +101,8 @@ public class LoginPostUnitTests : AccountControllerTestBase var response = await _accountController.LoginPost(login, CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Login")); Assert.That(viewResult?.Model, Is.TypeOf()); @@ -166,8 +166,8 @@ public class LoginPostUnitTests : AccountControllerTestBase var response = await _accountController.LoginPost(login, CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Login")); Assert.That(viewResult?.Model, Is.TypeOf()); @@ -196,8 +196,8 @@ public class LoginPostUnitTests : AccountControllerTestBase var response = await _accountController.LoginPost(login, CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Login")); Assert.That(viewResult?.Model, Is.TypeOf()); diff --git a/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/ProfileGetUnitTests.cs b/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/ProfileGetUnitTests.cs index 35eecaf..30dc949 100644 --- a/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/ProfileGetUnitTests.cs +++ b/e-suite.API/eSuite.API.UnitTests/Controllers/AccountControllerUnitTests/ProfileGetUnitTests.cs @@ -42,8 +42,8 @@ public class ProfileGetUnitTests : AccountControllerTestBase var response = await _accountController.ProfileGet(CancellationToken.None); //Assert - Assert.That(response, Is.TypeOf()); - var viewResult = response as ViewResult; + Assert.That(response, Is.TypeOf()); + var viewResult = response as PartialViewResult; Assert.That(viewResult?.ViewName, Is.EqualTo("Profile")); Assert.That(viewResult?.Model, Is.TypeOf()); diff --git a/e-suite.API/eSuite.API/Controllers/AccountController.cs b/e-suite.API/eSuite.API/Controllers/AccountController.cs index 9337c42..11c0586 100644 --- a/e-suite.API/eSuite.API/Controllers/AccountController.cs +++ b/e-suite.API/eSuite.API/Controllers/AccountController.cs @@ -71,9 +71,9 @@ public class AccountController : ESuiteController return LoginView(login); } - private ViewResult LoginView(Login? login) + private ActionResult LoginView(Login? login) { - return View("Login", login); + return PartialView("Login", login); } /// @@ -236,7 +236,7 @@ public class AccountController : ESuiteController var profile = await _userManager.GetProfile(User.Email(), cancellationToken); var userProfile = profile.ToUserProfile(); - return View("Profile", userProfile); + return PartialView("Profile", userProfile); } /// diff --git a/e-suite.API/eSuite.API/Controllers/CustomFieldsController.cs b/e-suite.API/eSuite.API/Controllers/CustomFieldsController.cs index 5c349af..08a1090 100644 --- a/e-suite.API/eSuite.API/Controllers/CustomFieldsController.cs +++ b/e-suite.API/eSuite.API/Controllers/CustomFieldsController.cs @@ -1,5 +1,6 @@ using e_suite.API.Common; using e_suite.API.Common.models; +using e_suite.Database.Core.Tables.CustomFields; using e_suite.Utilities.Pagination; using eSuite.API.security; using eSuite.API.Utilities; @@ -104,6 +105,28 @@ public class CustomFieldsController : ESuiteControllerBase return Ok(); } + /// + /// Patching is useful when you only want to update a few fields of the user rather than the whole object. + /// + /// + /// > + /// + /// + [Route("field")] + [HttpPatch] + [AccessKey(SecurityAccess.EditField)] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + public async Task PatchField( + [FromQuery] IGeneralIdRef id, + [FromBody] PatchCustomFields customFields, + CancellationToken cancellationToken = default! + ) + { + await _customFieldManager.PatchFieldAsync(AuditUserDetails, id, customFields, cancellationToken); + return Ok(); + } + /// /// Delete a custom field by giving a Id /// diff --git a/e-suite.API/eSuite.API/Views/Account/Login.cshtml b/e-suite.API/eSuite.API/Views/Account/Login.cshtml index 9e60f35..13ef0c0 100644 --- a/e-suite.API/eSuite.API/Views/Account/Login.cshtml +++ b/e-suite.API/eSuite.API/Views/Account/Login.cshtml @@ -8,7 +8,7 @@

Login

- @using (Html.BeginForm(FormMethod.Post, true, null)) + @using (Html.BeginForm(method: FormMethod.Post, antiforgery:true, htmlAttributes: new { data_full_page_redirect = "true" })) {
@Html.AntiForgeryToken() @@ -44,7 +44,7 @@ @Html.LabelFor(m => m.Email)
- @Html.EditorFor(m => m.Email, new { htmlAttributes = new { type = "email", autocomplete = "username" } }) + @Html.EditorFor(m => m.Email, new { htmlAttributes = new { type = "email", autocomplete = "username", @class = "form-control" } }) @Html.ValidationMessageFor(m => m.Email)
diff --git a/e-suite.API/eSuite.API/Views/Account/Profile.cshtml b/e-suite.API/eSuite.API/Views/Account/Profile.cshtml index d8c84ab..59ea507 100644 --- a/e-suite.API/eSuite.API/Views/Account/Profile.cshtml +++ b/e-suite.API/eSuite.API/Views/Account/Profile.cshtml @@ -2,7 +2,8 @@ @{ ViewBag.Title = "e-suite"; - Layout = "~/Views/Shared/_layout.cshtml"; + //Layout = "~/Views/Shared/_layout.cshtml"; + Layout = null; }
@@ -41,6 +42,5 @@ @await Html.PartialAsync("_loginMethodChooser") - Home }
diff --git a/e-suite.Modules.CustomFieldsManager/e-suite.Modules.CustomFieldsManager/CustomFieldManager.cs b/e-suite.Modules.CustomFieldsManager/e-suite.Modules.CustomFieldsManager/CustomFieldManager.cs index 9c2b3d4..ad4eeaf 100644 --- a/e-suite.Modules.CustomFieldsManager/e-suite.Modules.CustomFieldsManager/CustomFieldManager.cs +++ b/e-suite.Modules.CustomFieldsManager/e-suite.Modules.CustomFieldsManager/CustomFieldManager.cs @@ -1,5 +1,3 @@ -using System.Linq.Expressions; -using System.Text.Json; using e_suite.API.Common; using e_suite.API.Common.exceptions; using e_suite.API.Common.models; @@ -11,6 +9,8 @@ using e_suite.Database.Core.Tables.CustomFields; using e_suite.Utilities.Pagination; using eSuite.Core.CustomFields; using eSuite.Core.Miscellaneous; +using System.Linq.Expressions; +using System.Text.Json; namespace e_suite.Modules.CustomFieldsManager; @@ -26,12 +26,14 @@ public class CustomFieldManager : ICustomFieldManager private readonly ICustomFieldRepository _customFieldRepository; private readonly ICustomFieldReferenceObjectRepository _customFieldReferenceObjectRepository; private readonly ICustomFieldHelper _customFieldHelper; + private readonly IPatchFactory _patchFactory; - public CustomFieldManager(ICustomFieldRepository customFieldRepository, ICustomFieldReferenceObjectRepository customFieldReferenceObjectRepository, ICustomFieldHelper customFieldHelper) + public CustomFieldManager(ICustomFieldRepository customFieldRepository, ICustomFieldReferenceObjectRepository customFieldReferenceObjectRepository, ICustomFieldHelper customFieldHelper, IPatchFactory patchFactory) { _customFieldRepository = customFieldRepository; _customFieldReferenceObjectRepository = customFieldReferenceObjectRepository; _customFieldHelper = customFieldHelper; + _patchFactory = patchFactory; } private async Task> ValidateFieldDefinition(FieldType fieldType, IGeneralIdRef? idRef, CancellationToken cancellationToken) @@ -212,11 +214,8 @@ public class CustomFieldManager : ICustomFieldManager CancellationToken cancellationToken ) { - await _customFieldRepository.TransactionAsync(async () => + await AlterField(auditUserDetails, customField.Id, async customFieldOriginal => { - var customFieldOriginal = await _customFieldRepository.GetByIdAsync(customField.Id, cancellationToken); - Assert(customFieldOriginal); - var originalFieldType = customFieldOriginal!.FieldType; var refId = await AssertFieldReference(customField.FieldType, customField.RefElementId!, cancellationToken); @@ -233,12 +232,43 @@ public class CustomFieldManager : ICustomFieldManager customFieldOriginal.MinEntries = customField.MinEntries; await DealWithParameters(auditUserDetails, customField, originalFieldType, customFieldOriginal, refId, cancellationToken); + }, cancellationToken); + } + + private async Task AlterField( + AuditUserDetails auditUserDetails, + IGeneralIdRef Id, + Func applyChanges, + CancellationToken cancellationToken + ) + { + await _customFieldRepository.TransactionAsync(async () => + { + var customFieldOriginal = await _customFieldRepository.GetByIdAsync(Id, cancellationToken); + Assert(customFieldOriginal); + + await applyChanges(customFieldOriginal); Assert(customFieldOriginal); await _customFieldRepository.EditAsync(auditUserDetails, customFieldOriginal, cancellationToken); }); } + public async Task PatchFieldAsync( + AuditUserDetails auditUserDetails, + IGeneralIdRef Id, + PatchCustomFields customField, + CancellationToken cancellationToken + ) + { + var patch = _patchFactory.Create(customField); + + await AlterField(auditUserDetails, Id, async editUser => + { + await patch.ApplyTo(customField); + }, cancellationToken); + } + private async Task DealWithParameters( AuditUserDetails auditUserDetails, CustomFieldBase customField, diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/CustomFieldValuesListUnitTests.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/CustomFieldValuesListUnitTests.cs index 45bd5ed..fcf04ce 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/CustomFieldValuesListUnitTests.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/CustomFieldValuesListUnitTests.cs @@ -7,7 +7,7 @@ using eSuite.Core.CustomFields; namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldHelperUnitTests; [TestFixture] -public class CustomFieldValuesListUnitTests : CustomFieldsTestBase +public class CustomFieldValuesListUnitTests : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetFormTemplateByGeneralRefIdAsyncUnitTests.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetFormTemplateByGeneralRefIdAsyncUnitTests.cs index a78b864..0c55225 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetFormTemplateByGeneralRefIdAsyncUnitTests.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetFormTemplateByGeneralRefIdAsyncUnitTests.cs @@ -3,7 +3,7 @@ namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldHelperUnitTests; [TestFixture] -public class GetFormTemplateByGeneralRefIdAsyncUnitTests : CustomFieldsTestBase +public class GetFormTemplateByGeneralRefIdAsyncUnitTests : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetGlossaryByGeneralRefIdAsyncUnitTests.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetGlossaryByGeneralRefIdAsyncUnitTests.cs index 89e17b2..e2626bc 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetGlossaryByGeneralRefIdAsyncUnitTests.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/GetGlossaryByGeneralRefIdAsyncUnitTests.cs @@ -3,7 +3,7 @@ namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldHelperUnitTests; [TestFixture] -public class GetGlossaryByGeneralRefIdAsyncUnitTests : CustomFieldsTestBase +public class GetGlossaryByGeneralRefIdAsyncUnitTests : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/TranslateToCustomFieldDefinitionAsyncUnitTests.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/TranslateToCustomFieldDefinitionAsyncUnitTests.cs index 28feb24..b936767 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/TranslateToCustomFieldDefinitionAsyncUnitTests.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldHelperUnitTests/TranslateToCustomFieldDefinitionAsyncUnitTests.cs @@ -5,7 +5,7 @@ using eSuite.Core.CustomFields; namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldHelperUnitTests; [TestFixture] -public class TranslateToCustomFieldDefinitionAsyncUnitTests : CustomFieldsTestBase +public class TranslateToCustomFieldDefinitionAsyncUnitTests : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/CreateCustomFieldUnitTest.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/CreateCustomFieldUnitTest.cs index 118dfa0..144d8b1 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/CreateCustomFieldUnitTest.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/CreateCustomFieldUnitTest.cs @@ -7,7 +7,7 @@ using Sequence = e_suite.Database.Core.Tables.Sequences.Sequence; namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldManagerUnitTests; -public class CreateCustomFieldUnitTest : CustomFieldsTestBase +public class CreateCustomFieldUnitTest : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); @@ -27,7 +27,7 @@ public class CreateCustomFieldUnitTest : CustomFieldsTestBase MaxEntries = 5, Parameters = "{\"multiLine\":false}" }; - _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository!, _fakeCustomFieldReferenceRepository, _customFieldHelper); + _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository!, _fakeCustomFieldReferenceRepository, _customFieldHelper, PatchFactoryMock.Object); _customFieldRepository.Setup(x => x.CreateAsync(It.IsAny(), It.Is(x => x.Name == "Test"), It.IsAny())); //Act diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/DeactivateCustomFieldUnitTest.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/DeactivateCustomFieldUnitTest.cs index 6726e7a..bfe0e21 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/DeactivateCustomFieldUnitTest.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/DeactivateCustomFieldUnitTest.cs @@ -2,7 +2,7 @@ namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldManagerUnitTests; -public class DeactivateCustomFieldUnitTest : CustomFieldsTestBase +public class DeactivateCustomFieldUnitTest : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); @@ -21,7 +21,7 @@ public class DeactivateCustomFieldUnitTest : CustomFieldsTestBase Id = 5, }; _fakeCustomFieldRepository.CustomFields.Add(customField); - _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _customFieldReferenceObjectRepository.Object, _customFieldHelper); + _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _customFieldReferenceObjectRepository.Object, _customFieldHelper, PatchFactoryMock.Object); Assert.ThrowsAsync(() => _customFieldManager.DeleteFieldAsync(auditResult, new GeneralIdRef { Guid = Guid.NewGuid() }, default)); } @@ -46,7 +46,7 @@ public class DeactivateCustomFieldUnitTest : CustomFieldsTestBase [Test] public void DeactivateNotexistingCustomfieldthrowsException() { - _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _customFieldReferenceObjectRepository.Object, _customFieldHelper); + _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _customFieldReferenceObjectRepository.Object, _customFieldHelper, PatchFactoryMock.Object); Assert.ThrowsAsync(() => _customFieldManager.DeleteFieldAsync(auditResult, new GeneralIdRef { Guid = Guid.NewGuid() }, default)); } diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/EditCustomFieldlUnitTests.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/EditCustomFieldlUnitTests.cs index c3eb18a..50f58f1 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/EditCustomFieldlUnitTests.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/EditCustomFieldlUnitTests.cs @@ -7,7 +7,7 @@ using Sequence = e_suite.Database.Core.Tables.Sequences.Sequence; namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldManagerUnitTests; -public class EditCustomFieldUnitTests : CustomFieldsTestBase +public class EditCustomFieldUnitTests : CustomFieldsTestBase { [SetUp] diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetCustomByIdFieldUnitTest.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetCustomByIdFieldUnitTest.cs index 3b7d0f5..5823d58 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetCustomByIdFieldUnitTest.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetCustomByIdFieldUnitTest.cs @@ -2,7 +2,7 @@ using e_suite.API.Common.exceptions; namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldManagerUnitTests; -public class GetCustomByIdFieldUnitTest : CustomFieldsTestBase +public class GetCustomByIdFieldUnitTest : CustomFieldsTestBase { [SetUp] public override async Task Setup() diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldByNameUnitTest.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldByNameUnitTest.cs index 0a16605..e2d8904 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldByNameUnitTest.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldByNameUnitTest.cs @@ -2,7 +2,7 @@ namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldManagerUnitTests; -public class GetFieldByNameUnitTest : CustomFieldsTestBase +public class GetFieldByNameUnitTest : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); @@ -21,7 +21,7 @@ public class GetFieldByNameUnitTest : CustomFieldsTestBase Id = 15, Name = name, }; - _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _customFieldReferenceObjectRepository.Object, _customFieldHelper); + _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _customFieldReferenceObjectRepository.Object, _customFieldHelper, PatchFactoryMock.Object); _fakeCustomFieldRepository.CustomFields.Add(customField); var res = await _customFieldManager.GetFieldAsync(name,default); Assert.Multiple(() => diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldsAsyncUnitTests.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldsAsyncUnitTests.cs index 43aebd1..ce0b1fa 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldsAsyncUnitTests.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldManagerUnitTests/GetFieldsAsyncUnitTests.cs @@ -2,7 +2,7 @@ namespace e_suite.Modules.CustomFieldManagerUnitTests.CustomFieldManagerUnitTests; -public class GetFieldsAsyncUnitTests : CustomFieldsTestBase +public class GetFieldsAsyncUnitTests : CustomFieldsTestBase { [SetUp] public override async Task Setup() => await base.Setup(); diff --git a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldsTestBase.cs b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldsTestBase.cs index 854ba59..9110462 100644 --- a/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldsTestBase.cs +++ b/e-suite.Modules.CustomFieldsManager/e_suite.Modules.CusomFieldManagerUnitTest/CustomFieldsTestBase.cs @@ -5,7 +5,7 @@ using e_suite.UnitTestCore; namespace e_suite.Modules.CustomFieldManagerUnitTests; -public class CustomFieldsTestBase : TestBase +public class CustomFieldsTestBase : TestBase { protected Mock _customFieldRepository = null!; protected CustomFieldManager _customFieldManager = null!; @@ -14,6 +14,8 @@ public class CustomFieldsTestBase : TestBase protected Mock _customFieldReferenceObjectRepository = null!; protected FakeCustomFieldReferenceRepository _fakeCustomFieldReferenceRepository = null!; protected ICustomFieldHelper _customFieldHelper = null!; + protected Mock PatchFactoryMock = null!; + protected Mock> PatchMock = null!; public override async Task Setup() { @@ -29,6 +31,13 @@ public class CustomFieldsTestBase : TestBase _customFieldReferenceObjectRepository = new Mock(); _fakeCustomFieldReferenceRepository = new FakeCustomFieldReferenceRepository(); _customFieldHelper = new CustomFieldHelper(_fakeCustomFieldReferenceRepository); - _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _fakeCustomFieldReferenceRepository, _customFieldHelper); + + PatchFactoryMock = new Mock(); + PatchMock = new Mock>(); + PatchFactoryMock + .Setup(f => f.Create(It.IsAny())) + .Returns(PatchMock.Object); + + _customFieldManager = new CustomFieldManager(_fakeCustomFieldRepository, _fakeCustomFieldReferenceRepository, _customFieldHelper, PatchFactoryMock.Object); } } \ No newline at end of file