Kaynağa Gözat

extends Data/TypedArgument to use null value and valueType at once

Dalibor Votruba 2 yıl önce
ebeveyn
işleme
a9498e3561

+ 74 - 0
qdr.fnd.core.test/Exceptions/CodeExceptionTest.cs

@@ -0,0 +1,74 @@
+using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;
+using Quadarax.Foundation.Core.Attributes;
+using Quadarax.Foundation.Core.Exceptions;
+
+namespace qdr.fnd.core.test.Exceptions
+{
+    internal class CodeExceptionTest
+    {
+        const string CS_MESSAGE = "Foo";
+        const string CS_EN_MESSAGE1 = "Foo message";
+        const string CS_EN_MESSAGE2 = "Fii message";
+        const string CS_EN_MESSAGE3 = "Arguments {0},{1}";
+        const int CS_CODE = 1234;
+
+        enum TestErrorCodeEnum
+        {
+            [ErrorMessage(CS_EN_MESSAGE1)]
+            Foo = 1,
+            [ErrorMessage(CS_EN_MESSAGE2)]
+            Bar = 2,
+            NotDef = 3,
+            [ErrorMessage(CS_EN_MESSAGE3)]
+            Args = 4
+        }
+
+
+        [Test(TestOf = typeof(CodeException))]
+        public void CheckCodeAndMessageSettingOk()
+        {
+            var ex = new CodeException(CS_CODE, CS_MESSAGE);
+            Assert.That(ex.Code, Is.EqualTo(CS_CODE));
+            Assert.That(ex.Message, Is.EqualTo(CS_MESSAGE));
+            Assert.That(ex.InnerException, Is.Null);
+        }
+        [Test(TestOf = typeof(CodeException))]
+        public void CheckCodeAndMessageInnerSettingOk()
+        {
+            var exInner = new Exception("Fee");
+            var ex = new CodeException(CS_CODE, CS_MESSAGE, exInner);
+            Assert.That(ex.Code, Is.EqualTo(CS_CODE));
+            Assert.That(ex.Message, Is.EqualTo(CS_MESSAGE));
+            Assert.That(ex.InnerException, Is.Not.Null);
+            Assert.That(ex.InnerException.Message, Is.EqualTo(ex.InnerException.Message));
+        }
+
+        [Test(TestOf = typeof(CodeException))]
+        public void CheckGenericCodeOk()
+        {
+            var ex = new CodeException<TestErrorCodeEnum>(TestErrorCodeEnum.Foo);
+            Assert.That(ex.Code, Is.EqualTo(TestErrorCodeEnum.Foo));
+            Assert.That(ex.Message, Is.EqualTo(CS_EN_MESSAGE1));
+            Assert.That(ex.InnerException, Is.Null);
+        }
+
+        [Test(TestOf = typeof(CodeException))]
+        public void CheckGenericCodeArguments()
+        {
+            var ex = new CodeException<TestErrorCodeEnum>(TestErrorCodeEnum.Args,1,"AAA");
+            Assert.That(ex.Code, Is.EqualTo(TestErrorCodeEnum.Args));
+            Assert.That(ex.Message, Is.EqualTo(string.Format(CS_EN_MESSAGE3,1,"AAA")));
+            Assert.That(ex.InnerException, Is.Null);
+        }
+
+
+
+        [Test(TestOf = typeof(CodeException))]
+        public void CheckGenericCodeNotDefinedOk()
+        {
+            var ex = new CodeException<TestErrorCodeEnum>(TestErrorCodeEnum.NotDef);
+            Assert.That(ex.Message, Is.EqualTo($"Error message code: {TestErrorCodeEnum.NotDef} [{Convert.ToInt32(TestErrorCodeEnum.NotDef)}]"));
+        }
+
+    }
+}

+ 4 - 0
qdr.fnd.core/Data/TypedArgument.cs

@@ -22,6 +22,10 @@ public class TypedArgument : ITypedArgument
     public TypedArgument(string name, Type valueType, bool isOutput = false) : this(name, string.Empty, valueType, isOutput)
     {
          
+    }
+    public TypedArgument(string name, Type valueType, object? valueTyped, bool isOutput = false) : this(name, valueTyped?.ToString(), valueType, isOutput)
+    {
+         
     }
     public TypedArgument(string name, object valueTyped, bool isOutput = false) : this(name, valueTyped?.ToString(), valueTyped?.GetType(), isOutput)
     {

+ 2 - 1
qdr.fnd.core/qdr.fnd.core.csproj

@@ -18,7 +18,8 @@
     <AssemblyVersion>0.0.4.0</AssemblyVersion>
     <FileVersion>0.0.4.0</FileVersion>
     <Version>0.0.4.0-alpha</Version>
-    <PackageReleaseNotes>Date:11.3.2024
+    <PackageReleaseNotes>Date:12.3.2024
+      - etends Data/TypedArgument to use null value and valuyeType at once
       - add constructor to Exceptions/CodeException to support parameter message
       - add generic class Exceptions/CodeException to work with enumeration codes and messages
       - update dependencies packages (System.IO.Abstractions)

+ 2 - 1
qdr.fnd.core/releasenotes.md

@@ -2,7 +2,8 @@
 Ordered by version descending
 
 ## 0.0.4.0
-Date:__11.3.2024__
+Date:__12.3.2024__
+- etends Data/TypedArgument to use null value and valuyeType at once
 - add constructor to Exceptions/CodeException to support parameter message
 - add generic class Exceptions/CodeException to work with enumeration codes and messages
 - update dependencies packages (System.IO.Abstractions)