From 1d27ec3b858ee4a7ed31e0cb4acd393e21e1bd8a Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Mon, 11 May 2026 10:31:42 -0400 Subject: [PATCH] feat(templates): add TemplateFolder entity and Template.FolderId --- .../Entities/Templates/Template.cs | 1 + .../Entities/Templates/TemplateFolder.cs | 14 +++++++++ .../Entities/TemplateFolderTests.cs | 30 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 src/ScadaLink.Commons/Entities/Templates/TemplateFolder.cs create mode 100644 tests/ScadaLink.Commons.Tests/Entities/TemplateFolderTests.cs diff --git a/src/ScadaLink.Commons/Entities/Templates/Template.cs b/src/ScadaLink.Commons/Entities/Templates/Template.cs index 35633ac..a22358f 100644 --- a/src/ScadaLink.Commons/Entities/Templates/Template.cs +++ b/src/ScadaLink.Commons/Entities/Templates/Template.cs @@ -6,6 +6,7 @@ public class Template public string Name { get; set; } public string? Description { get; set; } public int? ParentTemplateId { get; set; } + public int? FolderId { get; set; } public ICollection Attributes { get; set; } = new List(); public ICollection Alarms { get; set; } = new List(); public ICollection Scripts { get; set; } = new List(); diff --git a/src/ScadaLink.Commons/Entities/Templates/TemplateFolder.cs b/src/ScadaLink.Commons/Entities/Templates/TemplateFolder.cs new file mode 100644 index 0000000..fd691af --- /dev/null +++ b/src/ScadaLink.Commons/Entities/Templates/TemplateFolder.cs @@ -0,0 +1,14 @@ +namespace ScadaLink.Commons.Entities.Templates; + +public class TemplateFolder +{ + public int Id { get; set; } + public string Name { get; set; } + public int? ParentFolderId { get; set; } + public int SortOrder { get; set; } + + public TemplateFolder(string name) + { + Name = name ?? throw new ArgumentNullException(nameof(name)); + } +} diff --git a/tests/ScadaLink.Commons.Tests/Entities/TemplateFolderTests.cs b/tests/ScadaLink.Commons.Tests/Entities/TemplateFolderTests.cs new file mode 100644 index 0000000..e990398 --- /dev/null +++ b/tests/ScadaLink.Commons.Tests/Entities/TemplateFolderTests.cs @@ -0,0 +1,30 @@ +using ScadaLink.Commons.Entities.Templates; +using Xunit; + +namespace ScadaLink.Commons.Tests.Entities; + +public class TemplateFolderTests +{ + [Fact] + public void Constructor_SetsName() + { + var folder = new TemplateFolder("Dev"); + + Assert.Equal("Dev", folder.Name); + Assert.Null(folder.ParentFolderId); + Assert.Equal(0, folder.SortOrder); + } + + [Fact] + public void Constructor_NullName_Throws() + { + Assert.Throws(() => new TemplateFolder(null!)); + } + + [Fact] + public void Template_FolderId_DefaultsToNull() + { + var template = new Template("X"); + Assert.Null(template.FolderId); + } +}