From a9e5b39ee201aa2cdcacc17bce4a60eda566bab9 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Fri, 12 Jan 2024 12:07:52 -0500 Subject: [PATCH] fix: Avoid throwing an exception when the length of the params list is zero --- src/Loader/YeSqlLoader.cs | 24 ++++++++++++-------- src/Models/ExceptionMessages.cs | 1 - tests/Loader/YeSqlLoaderTests.Directories.cs | 9 +++----- tests/Loader/YeSqlLoaderTests.Files.cs | 9 +++----- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/Loader/YeSqlLoader.cs b/src/Loader/YeSqlLoader.cs index 869974b..8aa465d 100644 --- a/src/Loader/YeSqlLoader.cs +++ b/src/Loader/YeSqlLoader.cs @@ -33,20 +33,22 @@ public partial class YeSqlLoader /// /// The SQL files to load. /// A collection containing the tags with their associated SQL statements. - /// sqlFiles is null. + /// + /// sqlFiles is null. + /// /// /// One or more files in is null, empty or consists only of white-space characters. - /// -or- - /// The length of the list is zero. /// - /// If the parser and/or loader encounters one or more errors. + /// + /// If the parser and/or loader encounters one or more errors. + /// public IYeSqlCollection LoadFromFiles(params string[] sqlFiles) { if (sqlFiles is null) throw new ArgumentNullException(nameof(sqlFiles)); if (sqlFiles.IsEmpty()) - throw new ArgumentException(ExceptionMessages.LengthOfParamsListIsZero); + return _parser.SqlStatements; if (sqlFiles.ContainsNullOrWhiteSpace()) throw new ArgumentException(string.Format(ExceptionMessages.CollectionHasNullValueOrOnlyWhitespace, nameof(sqlFiles))); @@ -67,20 +69,22 @@ public IYeSqlCollection LoadFromFiles(params string[] sqlFiles) /// /// A set of directories where the SQL files are located. /// A collection containing the tags with their associated SQL statements. - /// directories is null. + /// + /// directories is null. + /// /// /// One or more directories in is null, empty or consists only of white-space characters. - /// -or- - /// The length of the list is zero. /// - /// If the parser and/or loader encounters one or more errors. + /// + /// If the parser and/or loader encounters one or more errors. + /// public IYeSqlCollection LoadFromDirectories(params string[] directories) { if (directories is null) throw new ArgumentNullException(nameof(directories)); if (directories.IsEmpty()) - throw new ArgumentException(ExceptionMessages.LengthOfParamsListIsZero); + return _parser.SqlStatements; if(directories.ContainsNullOrWhiteSpace()) throw new ArgumentException(string.Format(ExceptionMessages.CollectionHasNullValueOrOnlyWhitespace, nameof(directories))); diff --git a/src/Models/ExceptionMessages.cs b/src/Models/ExceptionMessages.cs index e135839..7332631 100644 --- a/src/Models/ExceptionMessages.cs +++ b/src/Models/ExceptionMessages.cs @@ -18,5 +18,4 @@ internal class ExceptionMessages public const string DuplicateTagName = "The given tag '{0}' is duplicated."; public const string TagIsEmptyOrWhitespace = "The tag name is empty."; public const string LineIsNotAssociatedWithAnyTag = "'{0}' line is not associated with any tag."; - public const string LengthOfParamsListIsZero = "The length of the params list is zero."; } diff --git a/tests/Loader/YeSqlLoaderTests.Directories.cs b/tests/Loader/YeSqlLoaderTests.Directories.cs index 3f18ff0..f6c2f75 100644 --- a/tests/Loader/YeSqlLoaderTests.Directories.cs +++ b/tests/Loader/YeSqlLoaderTests.Directories.cs @@ -147,18 +147,15 @@ public void LoadFromDirectories_WhenDirectoryNotExists_ShouldThrowAggregateExcep } [Test] - public void LoadFromDirectories_WhenParamsListIsZero_ShouldThrowArgumentException() + public void LoadFromDirectories_WhenParamsListIsZero_ShouldNotThrowException() { // Arrange var loader = new YeSqlLoader(); - var expectedMessage = ExceptionMessages.LengthOfParamsListIsZero; // Act - Action action = () => loader.LoadFromDirectories(); + var sqlStatements = loader.LoadFromDirectories(); // Assert - action.Should() - .Throw() - .WithMessage(expectedMessage); + sqlStatements.Should().BeEmpty(); } } diff --git a/tests/Loader/YeSqlLoaderTests.Files.cs b/tests/Loader/YeSqlLoaderTests.Files.cs index 4c25ed2..2e35fab 100644 --- a/tests/Loader/YeSqlLoaderTests.Files.cs +++ b/tests/Loader/YeSqlLoaderTests.Files.cs @@ -155,18 +155,15 @@ public void LoadFromFiles_WhenCollectionHasNullValueOrOnlyWhitespace_ShouldThrow } [Test] - public void LoadFromFiles_WhenParamsListIsZero_ShouldThrowArgumentException() + public void LoadFromFiles_WhenParamsListIsZero_ShouldNotThrowException() { // Arrange var loader = new YeSqlLoader(); - var expectedMessage = ExceptionMessages.LengthOfParamsListIsZero; // Act - Action action = () => loader.LoadFromFiles(); + var sqlStatements = loader.LoadFromFiles(); // Assert - action.Should() - .Throw() - .WithMessage(expectedMessage); + sqlStatements.Should().BeEmpty(); } }