diff --git a/src/AStar.Dev.Utilities/AStar.Dev.Utilities.csproj b/src/AStar.Dev.Utilities/AStar.Dev.Utilities.csproj index dfb4b13..dced6f5 100644 --- a/src/AStar.Dev.Utilities/AStar.Dev.Utilities.csproj +++ b/src/AStar.Dev.Utilities/AStar.Dev.Utilities.csproj @@ -29,12 +29,12 @@ git https://github.com/jbarden/astar-dev-utilities A collection of useful utilities. - 1.5.0 + 1.5.1 AStar Development, Jason Barden $(AssemblyName).xml AStar.png True - version 1.5.0 contains the initial code port from the jbarden NuGet / GitHub organisations. + version 1.5.1 adds the missing tests, no functionality is affected. diff --git a/src/AStar.Dev.Utilities/AStar.Dev.Utilities.xml b/src/AStar.Dev.Utilities/AStar.Dev.Utilities.xml index 0814568..7f9b520 100644 --- a/src/AStar.Dev.Utilities/AStar.Dev.Utilities.xml +++ b/src/AStar.Dev.Utilities/AStar.Dev.Utilities.xml @@ -16,12 +16,10 @@ - - diff --git a/src/AStar.Dev.Utilities/Constants.cs b/src/AStar.Dev.Utilities/Constants.cs index c2165c2..5467e67 100644 --- a/src/AStar.Dev.Utilities/Constants.cs +++ b/src/AStar.Dev.Utilities/Constants.cs @@ -1,6 +1,6 @@ using System.Text.Json; -namespace AStar.Utilities; +namespace AStar.Dev.Utilities; /// /// The see> class contains static / constant properties to simplify and centralise various settings. diff --git a/src/AStar.Dev.Utilities/EnumExtensions.cs b/src/AStar.Dev.Utilities/EnumExtensions.cs index 1b46cef..cb490d2 100644 --- a/src/AStar.Dev.Utilities/EnumExtensions.cs +++ b/src/AStar.Dev.Utilities/EnumExtensions.cs @@ -1,4 +1,4 @@ -namespace AStar.Utilities; +namespace AStar.Dev.Utilities; /// /// @@ -6,10 +6,11 @@ public static class EnumExtensions { /// - /// + /// The ParseEnum method will parse the supplied string and return the matching enum value. /// - /// - /// - /// + /// The typeof of the expected enum. + /// The value to parse to the enum. + /// The parsed value as the matching enum value. + /// Thrown when the string is not a valid enum value. public static T ParseEnum(this string value) => (T)Enum.Parse(typeof(T), value, true); } diff --git a/src/AStar.Dev.Utilities/ObjectExtensions.cs b/src/AStar.Dev.Utilities/ObjectExtensions.cs index f9dc415..8a7d16c 100644 --- a/src/AStar.Dev.Utilities/ObjectExtensions.cs +++ b/src/AStar.Dev.Utilities/ObjectExtensions.cs @@ -1,6 +1,6 @@ using System.Text.Json; -namespace AStar.Utilities; +namespace AStar.Dev.Utilities; /// /// The class contains some useful methods to enable various tasks diff --git a/src/AStar.Dev.Utilities/StringExtensions.cs b/src/AStar.Dev.Utilities/StringExtensions.cs index 63aa841..7246b6b 100644 --- a/src/AStar.Dev.Utilities/StringExtensions.cs +++ b/src/AStar.Dev.Utilities/StringExtensions.cs @@ -1,6 +1,6 @@ using System.Text.Json; -namespace AStar.Utilities; +namespace AStar.Dev.Utilities; /// /// The class contains some useful methods to enable checks to be diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/AStar.Dev.Utilities.Unit.Tests.csproj b/tests/unit/AStar.Dev.Utilities.Unit.Tests/AStar.Dev.Utilities.Unit.Tests.csproj index 8bca3ab..0f44757 100644 --- a/tests/unit/AStar.Dev.Utilities.Unit.Tests/AStar.Dev.Utilities.Unit.Tests.csproj +++ b/tests/unit/AStar.Dev.Utilities.Unit.Tests/AStar.Dev.Utilities.Unit.Tests.csproj @@ -14,6 +14,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all + @@ -27,6 +28,7 @@ + diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/AnyClass.cs b/tests/unit/AStar.Dev.Utilities.Unit.Tests/AnyClass.cs new file mode 100644 index 0000000..0b94202 --- /dev/null +++ b/tests/unit/AStar.Dev.Utilities.Unit.Tests/AnyClass.cs @@ -0,0 +1,8 @@ +namespace AStar.Dev.Utilities.Unit.Tests; + +internal class AnyClass +{ + public int AnyInt { get; set; } + + public string AnyString { get; set; } = string.Empty; +} diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/AnyEnum.cs b/tests/unit/AStar.Dev.Utilities.Unit.Tests/AnyEnum.cs new file mode 100644 index 0000000..96f084a --- /dev/null +++ b/tests/unit/AStar.Dev.Utilities.Unit.Tests/AnyEnum.cs @@ -0,0 +1,7 @@ +namespace AStar.Dev.Utilities.Unit.Tests; + +internal enum AnyEnum +{ + NotDefined, + Defined +} diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/ConstantsShould.cs b/tests/unit/AStar.Dev.Utilities.Unit.Tests/ConstantsShould.cs new file mode 100644 index 0000000..f87f168 --- /dev/null +++ b/tests/unit/AStar.Dev.Utilities.Unit.Tests/ConstantsShould.cs @@ -0,0 +1,11 @@ +namespace AStar.Dev.Utilities.Unit.Tests; + +public class ConstantsShould +{ + [Fact] + public void ContainTheExpectedWebDeserialisationSettingsSetting() + => Constants.WebDeserialisationSettings + .ToJson() + .Should() + .Be("{\"Converters\":[],\"TypeInfoResolver\":null,\"TypeInfoResolverChain\":[],\"AllowTrailingCommas\":false,\"DefaultBufferSize\":16384,\"Encoder\":null,\"DictionaryKeyPolicy\":null,\"IgnoreNullValues\":false,\"DefaultIgnoreCondition\":0,\"NumberHandling\":1,\"PreferredObjectCreationHandling\":0,\"IgnoreReadOnlyProperties\":false,\"IgnoreReadOnlyFields\":false,\"IncludeFields\":false,\"MaxDepth\":0,\"PropertyNamingPolicy\":{},\"PropertyNameCaseInsensitive\":true,\"ReadCommentHandling\":0,\"UnknownTypeHandling\":0,\"UnmappedMemberHandling\":0,\"WriteIndented\":false,\"ReferenceHandler\":null,\"IsReadOnly\":false}"); +} diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/EnumExtensionsShould.cs b/tests/unit/AStar.Dev.Utilities.Unit.Tests/EnumExtensionsShould.cs new file mode 100644 index 0000000..62e3185 --- /dev/null +++ b/tests/unit/AStar.Dev.Utilities.Unit.Tests/EnumExtensionsShould.cs @@ -0,0 +1,16 @@ +namespace AStar.Dev.Utilities.Unit.Tests; + +public class EnumExtensionsShould +{ + [Fact] + public void ContainTheParseMethodReturningTheExpectedValue() + => "Defined".ParseEnum().Should().Be(AnyEnum.Defined); + + [Fact] + public void ContainTheParseMethodWhichThrowsArgumentExceptionWhenTheValueIsNotFound() + { + Action parseStringAction = () => "ThisDoesntExitst".ParseEnum(); + + _ = parseStringAction.Should().Throw(); + } +} diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/ObjectExtensionsShould.cs b/tests/unit/AStar.Dev.Utilities.Unit.Tests/ObjectExtensionsShould.cs new file mode 100644 index 0000000..11a52f5 --- /dev/null +++ b/tests/unit/AStar.Dev.Utilities.Unit.Tests/ObjectExtensionsShould.cs @@ -0,0 +1,10 @@ +namespace AStar.Dev.Utilities.Unit.Tests; + +public class ObjectExtensionsShould +{ + [Fact] + public void ContainTheToJsonMethodWhichReturnsTheExpectedString() + => ObjectExtensions + .ToJson(new AnyClass()) + .Should().Be("{\"AnyInt\":0,\"AnyString\":\"\"}"); +} diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/StringExtensionsShould.cs b/tests/unit/AStar.Dev.Utilities.Unit.Tests/StringExtensionsShould.cs new file mode 100644 index 0000000..5943c47 --- /dev/null +++ b/tests/unit/AStar.Dev.Utilities.Unit.Tests/StringExtensionsShould.cs @@ -0,0 +1,33 @@ +namespace AStar.Dev.Utilities.Unit.Tests; + +public class StringExtensionsShould +{ + private readonly string? nullString = null; + private readonly string notNullString = "value does not matter"; + private readonly string whitespaceString = " "; + private readonly string anyJson = "{\"AnyInt\":0,\"AnyString\":\"\"}"; + + [Fact] + public void ContainTheIsNullMethodWhichReturnsTheResult() + => nullString.IsNull().Should().BeTrue(); + + [Fact] + public void ContainTheIsNotNullMethodWhichReturnsTheResult() + => notNullString.IsNotNull().Should().BeTrue(); + + [Fact] + public void ContainTheIsNullOrWhiteSpaceMethodWhichReturnsTheResult() + => whitespaceString.IsNullOrWhiteSpace().Should().BeTrue(); + + [Fact] + public void ContainTheIsNotNullOrWhiteSpaceMethodWhichReturnsTheResult() + => notNullString.IsNotNullOrWhiteSpace().Should().BeTrue(); + + [Fact] + public void ContainTheFromJsonMethodWhichReturnsTheResult() + => anyJson.FromJson().Should().BeEquivalentTo(new() { }); + + [Fact] + public void ContainTheFromJsonTakingJsonSerializerOptionsMethodWhichReturnsTheResult() + => anyJson.FromJson(new()).Should().BeEquivalentTo(new() { }); +} diff --git a/tests/unit/AStar.Dev.Utilities.Unit.Tests/UnitTest1.cs b/tests/unit/AStar.Dev.Utilities.Unit.Tests/UnitTest1.cs deleted file mode 100644 index 6386f98..0000000 --- a/tests/unit/AStar.Dev.Utilities.Unit.Tests/UnitTest1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace AStar.Dev.Utilities.Unit.Tests; - -public class UnitTest1 -{ - [Fact] - public void Test1() - { - - } -} \ No newline at end of file