From b98448558b8270223088b46b7ca7ff7a298a4c16 Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Thu, 22 Jun 2023 00:39:37 -0300 Subject: [PATCH 01/11] Currency Code --- .../CurrencyCode2Converter.cs | 13 ++ .../Types/CurrencyCode2/CurrencyCode2.cs | 28 +++ .../Nox.Types.Tests/NoxCurrencyCode2Tests.cs | 181 ++++++++++++++++++ 3 files changed, 222 insertions(+) create mode 100644 src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs create mode 100644 src/Nox.Types/Types/CurrencyCode2/CurrencyCode2.cs create mode 100644 tests/Nox.Types.Tests/NoxCurrencyCode2Tests.cs diff --git a/src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs b/src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs new file mode 100644 index 0000000..4b63ac0 --- /dev/null +++ b/src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs @@ -0,0 +1,13 @@ +namespace Nox.Types.EntityFramework; + +/// +/// Class for three-letters currency code (ISO 4217). +/// +public class CurrencyCode2Converter : ValueConverter +{ + /// + /// Initializes a new instance of the class. + /// + public CurrencyCode2Converter() : base(currencyCode2 => currencyCode2.Value, currencyCode2 => CurrencyCode2.From(currencyCode2)) { } +} + diff --git a/src/Nox.Types/Types/CurrencyCode2/CurrencyCode2.cs b/src/Nox.Types/Types/CurrencyCode2/CurrencyCode2.cs new file mode 100644 index 0000000..14c83f0 --- /dev/null +++ b/src/Nox.Types/Types/CurrencyCode2/CurrencyCode2.cs @@ -0,0 +1,28 @@ +using System; +using System.Text.RegularExpressions; + +namespace Nox.Types; + +/// +/// Class for three-letters currency code (ISO 4217). +/// +public sealed class CurrencyCode2 : ValueObject +{ + private const string ThreeLettersCurrencyCode = @"^[A-Z]{3}$"; + + /// + /// Validates the object. + /// + /// A validation result indicating whether the object is valid or not. + internal override ValidationResult Validate() + { + var result = base.Validate(); + + if (!Regex.IsMatch(Value, ThreeLettersCurrencyCode) && !Enum.TryParse(Value, out _)) + { + result.Errors.Add(new ValidationFailure(nameof(Value), $"Could not create a Nox CurrencyCode2 type with unsupported value '{Value}'.")); + } + + return result; + } +} diff --git a/tests/Nox.Types.Tests/NoxCurrencyCode2Tests.cs b/tests/Nox.Types.Tests/NoxCurrencyCode2Tests.cs new file mode 100644 index 0000000..eaa8929 --- /dev/null +++ b/tests/Nox.Types.Tests/NoxCurrencyCode2Tests.cs @@ -0,0 +1,181 @@ +namespace Nox.Types.Tests; +public class NoxCurrencyCode2Tests +{ + [InlineData("AED")] + [InlineData("AFN")] + [InlineData("ALL")] + [InlineData("AMD")] + [InlineData("ANG")] + [InlineData("AOA")] + [InlineData("ARS")] + [InlineData("AUD")] + [InlineData("AWG")] + [InlineData("AZN")] + [InlineData("BAM")] + [InlineData("BBD")] + [InlineData("BDT")] + [InlineData("BGN")] + [InlineData("BHD")] + [InlineData("BIF")] + [InlineData("BMD")] + [InlineData("BND")] + [InlineData("BOB")] + [InlineData("BRL")] + [InlineData("BSD")] + [InlineData("BTC")] + [InlineData("BTN")] + [InlineData("BWP")] + [InlineData("BYR")] + [InlineData("BYN")] + [InlineData("BZD")] + [InlineData("CAD")] + [InlineData("CDF")] + [InlineData("CHF")] + [InlineData("CLP")] + [InlineData("CNY")] + [InlineData("COP")] + [InlineData("CRC")] + [InlineData("CUC")] + [InlineData("CUP")] + [InlineData("CVE")] + [InlineData("CZK")] + [InlineData("DJF")] + [InlineData("DKK")] + [InlineData("DOP")] + [InlineData("DZD")] + [InlineData("EGP")] + [InlineData("ERN")] + [InlineData("ETB")] + [InlineData("EUR")] + [InlineData("FJD")] + [InlineData("FKP")] + [InlineData("GBP")] + [InlineData("GEL")] + [InlineData("GHS")] + [InlineData("GIP")] + [InlineData("GMD")] + [InlineData("GNF")] + [InlineData("GTQ")] + [InlineData("GYD")] + [InlineData("HKD")] + [InlineData("HNL")] + [InlineData("HRK")] + [InlineData("HTG")] + [InlineData("HUF")] + [InlineData("IDR")] + [InlineData("ILS")] + [InlineData("INR")] + [InlineData("IQD")] + [InlineData("IRR")] + [InlineData("ISK")] + [InlineData("JMD")] + [InlineData("JOD")] + [InlineData("JPY")] + [InlineData("KES")] + [InlineData("KGS")] + [InlineData("KHR")] + [InlineData("KMF")] + [InlineData("KPW")] + [InlineData("KRW")] + [InlineData("KWD")] + [InlineData("KYD")] + [InlineData("KZT")] + [InlineData("LAK")] + [InlineData("LBP")] + [InlineData("LKR")] + [InlineData("LRD")] + [InlineData("LSL")] + [InlineData("LYD")] + [InlineData("MAD")] + [InlineData("MDL")] + [InlineData("MGA")] + [InlineData("MKD")] + [InlineData("MMK")] + [InlineData("MNT")] + [InlineData("MOP")] + [InlineData("MRO")] + [InlineData("MTL")] + [InlineData("MUR")] + [InlineData("MVR")] + [InlineData("MWK")] + [InlineData("MXN")] + [InlineData("MYR")] + [InlineData("MZN")] + [InlineData("NAD")] + [InlineData("NGN")] + [InlineData("NIO")] + [InlineData("NOK")] + [InlineData("NPR")] + [InlineData("NZD")] + [InlineData("OMR")] + [InlineData("PAB")] + [InlineData("PEN")] + [InlineData("PGK")] + [InlineData("PHP")] + [InlineData("PKR")] + [InlineData("PLN")] + [InlineData("PYG")] + [InlineData("QAR")] + [InlineData("RON")] + [InlineData("RSD")] + [InlineData("RUB")] + [InlineData("RWF")] + [InlineData("SAR")] + [InlineData("SBD")] + [InlineData("SCR")] + [InlineData("SDD")] + [InlineData("SDG")] + [InlineData("SEK")] + [InlineData("SGD")] + [InlineData("SHP")] + [InlineData("SLL")] + [InlineData("SOS")] + [InlineData("SRD")] + [InlineData("STD")] + [Theory] + public void Nox_CurrencyCode2_Constructor_ReturnsSameValue_AllCurrencies(string currencyCode2String) + { + var currencyCode2 = CurrencyCode2.From(currencyCode2String); + + Assert.Equal(currencyCode2String, currencyCode2.Value); + } + + [Fact] + public void Nox_CurrencyCode2_Constructor_WithUnsupportedCurrencyCode2_ThrowsValidationException() + { + var exception = Assert.Throws(() => _ = + CurrencyCode2.From("ABC") + ); + + Assert.Equal("Could not create a Nox CurrencyCode2 type with unsupported value 'ABC'.", exception.Errors.First().ErrorMessage); + } + + [Fact] + public void Nox_CurrencyCode2_Equality_Tests() + { + var currencyCode2_1 = CurrencyCode2.From("USD"); + + var currencyCode2_2 = CurrencyCode2.From("USD"); + + Assert.Equal(currencyCode2_1, currencyCode2_2); + } + + [Fact] + public void Nox_CurrencyCode2_NotEqual_Tests() + { + var currencyCode2_1 = CurrencyCode2.From("RWF"); + + var currencyCode2_2 = CurrencyCode2.From("SHP"); + + Assert.NotEqual(currencyCode2_1, currencyCode2_2); + } + + [Fact] + public void Nox_CurrencyCode2_ToString_ReturnsString() + { + var currencyCode2 = CountryCode2.From("USD"); + + Assert.Equal("USD", currencyCode2.ToString()); + } +} + From 35af5a68be944891384a6a26cd3315029075fb4f Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Thu, 22 Jun 2023 11:39:24 -0300 Subject: [PATCH 02/11] Update name --- .../CurrencyCode2Converter.cs | 13 ------- .../CurrencyCode3Converter.cs | 13 +++++++ .../CurrencyCode3.cs} | 8 ++--- ...Code2Tests.cs => NoxCurrencyCode3Tests.cs} | 36 +++++++++---------- 4 files changed, 35 insertions(+), 35 deletions(-) delete mode 100644 src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs create mode 100644 src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs rename src/Nox.Types/Types/{CurrencyCode2/CurrencyCode2.cs => CurrencyCode3/CurrencyCode3.cs} (72%) rename tests/Nox.Types.Tests/{NoxCurrencyCode2Tests.cs => NoxCurrencyCode3Tests.cs} (76%) diff --git a/src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs b/src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs deleted file mode 100644 index 4b63ac0..0000000 --- a/src/Nox.Types.EntityFramework/CurrencyCode2Converter.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Nox.Types.EntityFramework; - -/// -/// Class for three-letters currency code (ISO 4217). -/// -public class CurrencyCode2Converter : ValueConverter -{ - /// - /// Initializes a new instance of the class. - /// - public CurrencyCode2Converter() : base(currencyCode2 => currencyCode2.Value, currencyCode2 => CurrencyCode2.From(currencyCode2)) { } -} - diff --git a/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs new file mode 100644 index 0000000..da4a2f8 --- /dev/null +++ b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs @@ -0,0 +1,13 @@ +namespace Nox.Types.EntityFramework; + +/// +/// Class for three-letters currency code (ISO 4217). +/// +public class CurrencyCode3Converter : ValueConverter +{ + /// + /// Initializes a new instance of the class. + /// + public CurrencyCode3Converter() : base(currencyCode3 => currencyCode3.Value, currencyCode3 => CurrencyCode2.From(currencyCode3)) { } +} + diff --git a/src/Nox.Types/Types/CurrencyCode2/CurrencyCode2.cs b/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs similarity index 72% rename from src/Nox.Types/Types/CurrencyCode2/CurrencyCode2.cs rename to src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs index 14c83f0..cf21474 100644 --- a/src/Nox.Types/Types/CurrencyCode2/CurrencyCode2.cs +++ b/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs @@ -6,21 +6,21 @@ namespace Nox.Types; /// /// Class for three-letters currency code (ISO 4217). /// -public sealed class CurrencyCode2 : ValueObject +public sealed class CurrencyCode3 : ValueObject { private const string ThreeLettersCurrencyCode = @"^[A-Z]{3}$"; /// - /// Validates the object. + /// Validates the object. /// - /// A validation result indicating whether the object is valid or not. + /// A validation result indicating whether the object is valid or not. internal override ValidationResult Validate() { var result = base.Validate(); if (!Regex.IsMatch(Value, ThreeLettersCurrencyCode) && !Enum.TryParse(Value, out _)) { - result.Errors.Add(new ValidationFailure(nameof(Value), $"Could not create a Nox CurrencyCode2 type with unsupported value '{Value}'.")); + result.Errors.Add(new ValidationFailure(nameof(Value), $"Could not create a Nox CurrencyCode3 type with unsupported value '{Value}'.")); } return result; diff --git a/tests/Nox.Types.Tests/NoxCurrencyCode2Tests.cs b/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs similarity index 76% rename from tests/Nox.Types.Tests/NoxCurrencyCode2Tests.cs rename to tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs index eaa8929..f3daf5b 100644 --- a/tests/Nox.Types.Tests/NoxCurrencyCode2Tests.cs +++ b/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs @@ -1,5 +1,5 @@ namespace Nox.Types.Tests; -public class NoxCurrencyCode2Tests +public class NoxCurrencyCode3Tests { [InlineData("AED")] [InlineData("AFN")] @@ -133,49 +133,49 @@ public class NoxCurrencyCode2Tests [InlineData("SRD")] [InlineData("STD")] [Theory] - public void Nox_CurrencyCode2_Constructor_ReturnsSameValue_AllCurrencies(string currencyCode2String) + public void Nox_CurrencyCode3_Constructor_ReturnsSameValue_AllCurrencies(string currencyCode3String) { - var currencyCode2 = CurrencyCode2.From(currencyCode2String); + var currencyCode3 = CurrencyCode3.From(currencyCode3String); - Assert.Equal(currencyCode2String, currencyCode2.Value); + Assert.Equal(currencyCode3String, currencyCode3.Value); } [Fact] - public void Nox_CurrencyCode2_Constructor_WithUnsupportedCurrencyCode2_ThrowsValidationException() + public void Nox_CurrencyCode3_Constructor_WithUnsupportedCurrencyCode3_ThrowsValidationException() { var exception = Assert.Throws(() => _ = - CurrencyCode2.From("ABC") + CurrencyCode3.From("ABC") ); - Assert.Equal("Could not create a Nox CurrencyCode2 type with unsupported value 'ABC'.", exception.Errors.First().ErrorMessage); + Assert.Equal("Could not create a Nox CurrencyCode3 type with unsupported value 'ABC'.", exception.Errors.First().ErrorMessage); } [Fact] - public void Nox_CurrencyCode2_Equality_Tests() + public void Nox_CurrencyCode3_Equality_Tests() { - var currencyCode2_1 = CurrencyCode2.From("USD"); + var currencyCode3_1 = CurrencyCode3.From("USD"); - var currencyCode2_2 = CurrencyCode2.From("USD"); + var currencyCode3_2 = CurrencyCode3.From("USD"); - Assert.Equal(currencyCode2_1, currencyCode2_2); + Assert.Equal(currencyCode3_1, currencyCode3_2); } [Fact] - public void Nox_CurrencyCode2_NotEqual_Tests() + public void Nox_CurrencyCode3_NotEqual_Tests() { - var currencyCode2_1 = CurrencyCode2.From("RWF"); + var currencyCode3_1 = CurrencyCode3.From("RWF"); - var currencyCode2_2 = CurrencyCode2.From("SHP"); + var currencyCode3_2 = CurrencyCode3.From("SHP"); - Assert.NotEqual(currencyCode2_1, currencyCode2_2); + Assert.NotEqual(currencyCode3_1, currencyCode3_2); } [Fact] - public void Nox_CurrencyCode2_ToString_ReturnsString() + public void Nox_CurrencyCode3_ToString_ReturnsString() { - var currencyCode2 = CountryCode2.From("USD"); + var currencyCode3 = CountryCode2.From("USD"); - Assert.Equal("USD", currencyCode2.ToString()); + Assert.Equal("USD", currencyCode3.ToString()); } } From 85eaa0e2a83db8bbcefe4dcd52b256d349a8c004 Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Thu, 22 Jun 2023 11:43:22 -0300 Subject: [PATCH 03/11] Convesion --- src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs index da4a2f8..ce56d9b 100644 --- a/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs +++ b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs @@ -1,4 +1,6 @@ -namespace Nox.Types.EntityFramework; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace Nox.Types.EntityFramework; /// /// Class for three-letters currency code (ISO 4217). From 06c1a12543e98ce1bc94bf8fb35b5fbc4c9680ed Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Fri, 23 Jun 2023 06:07:57 -0300 Subject: [PATCH 04/11] From --- src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs index ce56d9b..57300ab 100644 --- a/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs +++ b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs @@ -10,6 +10,6 @@ public class CurrencyCode3Converter : ValueConverter /// /// Initializes a new instance of the class. /// - public CurrencyCode3Converter() : base(currencyCode3 => currencyCode3.Value, currencyCode3 => CurrencyCode2.From(currencyCode3)) { } + public CurrencyCode3Converter() : base(currencyCode3 => currencyCode3.Value, currencyCode3 => CurrencyCode3.From(currencyCode3)) { } } From 1518979820ecae0031ffc77e397330459e652ece Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Fri, 23 Jun 2023 09:31:55 -0300 Subject: [PATCH 05/11] Regex validation --- src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs b/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs index cf21474..1e91b95 100644 --- a/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs +++ b/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs @@ -8,7 +8,7 @@ namespace Nox.Types; /// public sealed class CurrencyCode3 : ValueObject { - private const string ThreeLettersCurrencyCode = @"^[A-Z]{3}$"; + private readonly string ThreeLettersCurrencyCode = @"^[A-Z]+$"; /// /// Validates the object. @@ -18,7 +18,7 @@ internal override ValidationResult Validate() { var result = base.Validate(); - if (!Regex.IsMatch(Value, ThreeLettersCurrencyCode) && !Enum.TryParse(Value, out _)) + if (!Regex.IsMatch(Value, ThreeLettersCurrencyCode) || !Enum.TryParse(Value, out _)) { result.Errors.Add(new ValidationFailure(nameof(Value), $"Could not create a Nox CurrencyCode3 type with unsupported value '{Value}'.")); } From 3213d77e5bc95bcbee21688e9700397966613ca5 Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Fri, 23 Jun 2023 09:34:44 -0300 Subject: [PATCH 06/11] Fix test --- tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs b/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs index f3daf5b..90da9b4 100644 --- a/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs +++ b/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs @@ -173,7 +173,7 @@ public void Nox_CurrencyCode3_NotEqual_Tests() [Fact] public void Nox_CurrencyCode3_ToString_ReturnsString() { - var currencyCode3 = CountryCode2.From("USD"); + var currencyCode3 = CurrencyCode3.From("USD"); Assert.Equal("USD", currencyCode3.ToString()); } From 721e042560e7c193ceb0590807961abe58c81283 Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Sun, 25 Jun 2023 21:01:52 -0300 Subject: [PATCH 07/11] Currency Code validation --- src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs b/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs index 1e91b95..58bad97 100644 --- a/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs +++ b/src/Nox.Types/Types/CurrencyCode3/CurrencyCode3.cs @@ -1,5 +1,5 @@ using System; -using System.Text.RegularExpressions; +using System.Linq; namespace Nox.Types; @@ -8,7 +8,7 @@ namespace Nox.Types; /// public sealed class CurrencyCode3 : ValueObject { - private readonly string ThreeLettersCurrencyCode = @"^[A-Z]+$"; + private readonly string[] CurrencyCodes = Enum.GetNames(typeof(CurrencyCode)); /// /// Validates the object. @@ -18,7 +18,7 @@ internal override ValidationResult Validate() { var result = base.Validate(); - if (!Regex.IsMatch(Value, ThreeLettersCurrencyCode) || !Enum.TryParse(Value, out _)) + if (!CurrencyCodes.Contains(Value)) { result.Errors.Add(new ValidationFailure(nameof(Value), $"Could not create a Nox CurrencyCode3 type with unsupported value '{Value}'.")); } From bf5c40416195c157fa45b80f55dee7373f747c85 Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Wed, 28 Jun 2023 06:07:33 -0300 Subject: [PATCH 08/11] Code review --- tests/Nox.Types.Tests/CurrencyCodeData.cs | 144 +++++++++++++++++ .../Nox.Types.Tests/NoxCurrencyCode3Tests.cs | 146 ++---------------- 2 files changed, 153 insertions(+), 137 deletions(-) create mode 100644 tests/Nox.Types.Tests/CurrencyCodeData.cs diff --git a/tests/Nox.Types.Tests/CurrencyCodeData.cs b/tests/Nox.Types.Tests/CurrencyCodeData.cs new file mode 100644 index 0000000..b1e0480 --- /dev/null +++ b/tests/Nox.Types.Tests/CurrencyCodeData.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Nox.Types.Tests.Types; +public class CurrencyCodeData : IEnumerable +{ + public IEnumerator GetEnumerator() + { + yield return new object[] { "AED" }; + yield return new object[] { "AFN" }; + yield return new object[] { "ALL" }; + yield return new object[] { "AMD" }; + yield return new object[] { "ANG" }; + yield return new object[] { "AOA" }; + yield return new object[] { "ARS" }; + yield return new object[] { "AUD" }; + yield return new object[] { "AWG" }; + yield return new object[] { "AZN" }; + yield return new object[] { "BAM" }; + yield return new object[] { "BBD" }; + yield return new object[] { "BDT" }; + yield return new object[] { "BGN" }; + yield return new object[] { "BHD" }; + yield return new object[] { "BIF" }; + yield return new object[] { "BMD" }; + yield return new object[] { "BND" }; + yield return new object[] { "BOB" }; + yield return new object[] { "BRL" }; + yield return new object[] { "BSD" }; + yield return new object[] { "BTC" }; + yield return new object[] { "BTN" }; + yield return new object[] { "BWP" }; + yield return new object[] { "BYR" }; + yield return new object[] { "BYN" }; + yield return new object[] { "BZD" }; + yield return new object[] { "CAD" }; + yield return new object[] { "CDF" }; + yield return new object[] { "CHF" }; + yield return new object[] { "CLP" }; + yield return new object[] { "CNY" }; + yield return new object[] { "COP" }; + yield return new object[] { "CRC" }; + yield return new object[] { "CUC" }; + yield return new object[] { "CUP" }; + yield return new object[] { "CVE" }; + yield return new object[] { "CZK" }; + yield return new object[] { "DJF" }; + yield return new object[] { "DKK" }; + yield return new object[] { "DOP" }; + yield return new object[] { "DZD" }; + yield return new object[] { "EGP" }; + yield return new object[] { "ERN" }; + yield return new object[] { "ETB" }; + yield return new object[] { "EUR" }; + yield return new object[] { "FJD" }; + yield return new object[] { "FKP" }; + yield return new object[] { "GBP" }; + yield return new object[] { "GEL" }; + yield return new object[] { "GHS" }; + yield return new object[] { "GIP" }; + yield return new object[] { "GMD" }; + yield return new object[] { "GNF" }; + yield return new object[] { "GTQ" }; + yield return new object[] { "GYD" }; + yield return new object[] { "HKD" }; + yield return new object[] { "HNL" }; + yield return new object[] { "HRK" }; + yield return new object[] { "HTG" }; + yield return new object[] { "HUF" }; + yield return new object[] { "IDR" }; + yield return new object[] { "ILS" }; + yield return new object[] { "INR" }; + yield return new object[] { "IQD" }; + yield return new object[] { "IRR" }; + yield return new object[] { "ISK" }; + yield return new object[] { "JMD" }; + yield return new object[] { "JOD" }; + yield return new object[] { "JPY" }; + yield return new object[] { "KES" }; + yield return new object[] { "KGS" }; + yield return new object[] { "KHR" }; + yield return new object[] { "KMF" }; + yield return new object[] { "KPW" }; + yield return new object[] { "KRW" }; + yield return new object[] { "KWD" }; + yield return new object[] { "KYD" }; + yield return new object[] { "KZT" }; + yield return new object[] { "LAK" }; + yield return new object[] { "LBP" }; + yield return new object[] { "LKR" }; + yield return new object[] { "LRD" }; + yield return new object[] { "LSL" }; + yield return new object[] { "LYD" }; + yield return new object[] { "MAD" }; + yield return new object[] { "MDL" }; + yield return new object[] { "MGA" }; + yield return new object[] { "MKD" }; + yield return new object[] { "MMK" }; + yield return new object[] { "MNT" }; + yield return new object[] { "MOP" }; + yield return new object[] { "MRO" }; + yield return new object[] { "MTL" }; + yield return new object[] { "MUR" }; + yield return new object[] { "MVR" }; + yield return new object[] { "MWK" }; + yield return new object[] { "MXN" }; + yield return new object[] { "MYR" }; + yield return new object[] { "MZN" }; + yield return new object[] { "NAD" }; + yield return new object[] { "NGN" }; + yield return new object[] { "NIO" }; + yield return new object[] { "NOK" }; + yield return new object[] { "NPR" }; + yield return new object[] { "NZD" }; + yield return new object[] { "OMR" }; + yield return new object[] { "PAB" }; + yield return new object[] { "PEN" }; + yield return new object[] { "PGK" }; + yield return new object[] { "PHP" }; + yield return new object[] { "PKR" }; + yield return new object[] { "PLN" }; + yield return new object[] { "PYG" }; + yield return new object[] { "QAR" }; + yield return new object[] { "RON" }; + yield return new object[] { "RSD" }; + yield return new object[] { "RUB" }; + yield return new object[] { "RWF" }; + yield return new object[] { "SAR" }; + yield return new object[] { "SBD" }; + yield return new object[] { "SCR" }; + yield return new object[] { "SDD" }; + yield return new object[] { "SDG" }; + yield return new object[] { "SEK" }; + yield return new object[] { "SGD" }; + yield return new object[] { "SHP" }; + yield return new object[] { "SLL" }; + yield return new object[] { "SOS" }; + yield return new object[] { "SRD" }; + yield return new object[] { "STD" }; + } + + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); +} diff --git a/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs b/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs index 90da9b4..f38932e 100644 --- a/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs +++ b/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs @@ -1,139 +1,11 @@ -namespace Nox.Types.Tests; +using Nox.Types.Tests.Types; + +namespace Nox.Types.Tests; public class NoxCurrencyCode3Tests { - [InlineData("AED")] - [InlineData("AFN")] - [InlineData("ALL")] - [InlineData("AMD")] - [InlineData("ANG")] - [InlineData("AOA")] - [InlineData("ARS")] - [InlineData("AUD")] - [InlineData("AWG")] - [InlineData("AZN")] - [InlineData("BAM")] - [InlineData("BBD")] - [InlineData("BDT")] - [InlineData("BGN")] - [InlineData("BHD")] - [InlineData("BIF")] - [InlineData("BMD")] - [InlineData("BND")] - [InlineData("BOB")] - [InlineData("BRL")] - [InlineData("BSD")] - [InlineData("BTC")] - [InlineData("BTN")] - [InlineData("BWP")] - [InlineData("BYR")] - [InlineData("BYN")] - [InlineData("BZD")] - [InlineData("CAD")] - [InlineData("CDF")] - [InlineData("CHF")] - [InlineData("CLP")] - [InlineData("CNY")] - [InlineData("COP")] - [InlineData("CRC")] - [InlineData("CUC")] - [InlineData("CUP")] - [InlineData("CVE")] - [InlineData("CZK")] - [InlineData("DJF")] - [InlineData("DKK")] - [InlineData("DOP")] - [InlineData("DZD")] - [InlineData("EGP")] - [InlineData("ERN")] - [InlineData("ETB")] - [InlineData("EUR")] - [InlineData("FJD")] - [InlineData("FKP")] - [InlineData("GBP")] - [InlineData("GEL")] - [InlineData("GHS")] - [InlineData("GIP")] - [InlineData("GMD")] - [InlineData("GNF")] - [InlineData("GTQ")] - [InlineData("GYD")] - [InlineData("HKD")] - [InlineData("HNL")] - [InlineData("HRK")] - [InlineData("HTG")] - [InlineData("HUF")] - [InlineData("IDR")] - [InlineData("ILS")] - [InlineData("INR")] - [InlineData("IQD")] - [InlineData("IRR")] - [InlineData("ISK")] - [InlineData("JMD")] - [InlineData("JOD")] - [InlineData("JPY")] - [InlineData("KES")] - [InlineData("KGS")] - [InlineData("KHR")] - [InlineData("KMF")] - [InlineData("KPW")] - [InlineData("KRW")] - [InlineData("KWD")] - [InlineData("KYD")] - [InlineData("KZT")] - [InlineData("LAK")] - [InlineData("LBP")] - [InlineData("LKR")] - [InlineData("LRD")] - [InlineData("LSL")] - [InlineData("LYD")] - [InlineData("MAD")] - [InlineData("MDL")] - [InlineData("MGA")] - [InlineData("MKD")] - [InlineData("MMK")] - [InlineData("MNT")] - [InlineData("MOP")] - [InlineData("MRO")] - [InlineData("MTL")] - [InlineData("MUR")] - [InlineData("MVR")] - [InlineData("MWK")] - [InlineData("MXN")] - [InlineData("MYR")] - [InlineData("MZN")] - [InlineData("NAD")] - [InlineData("NGN")] - [InlineData("NIO")] - [InlineData("NOK")] - [InlineData("NPR")] - [InlineData("NZD")] - [InlineData("OMR")] - [InlineData("PAB")] - [InlineData("PEN")] - [InlineData("PGK")] - [InlineData("PHP")] - [InlineData("PKR")] - [InlineData("PLN")] - [InlineData("PYG")] - [InlineData("QAR")] - [InlineData("RON")] - [InlineData("RSD")] - [InlineData("RUB")] - [InlineData("RWF")] - [InlineData("SAR")] - [InlineData("SBD")] - [InlineData("SCR")] - [InlineData("SDD")] - [InlineData("SDG")] - [InlineData("SEK")] - [InlineData("SGD")] - [InlineData("SHP")] - [InlineData("SLL")] - [InlineData("SOS")] - [InlineData("SRD")] - [InlineData("STD")] [Theory] - public void Nox_CurrencyCode3_Constructor_ReturnsSameValue_AllCurrencies(string currencyCode3String) + [ClassData(typeof(CurrencyCodeData))] + public void CurrencyCode3_Constructor_ReturnsSameValue_AllCurrencies(string currencyCode3String) { var currencyCode3 = CurrencyCode3.From(currencyCode3String); @@ -141,7 +13,7 @@ public void Nox_CurrencyCode3_Constructor_ReturnsSameValue_AllCurrencies(string } [Fact] - public void Nox_CurrencyCode3_Constructor_WithUnsupportedCurrencyCode3_ThrowsValidationException() + public void CurrencyCode3_Constructor_WithUnsupportedCurrencyCode3_ThrowsValidationException() { var exception = Assert.Throws(() => _ = CurrencyCode3.From("ABC") @@ -151,7 +23,7 @@ public void Nox_CurrencyCode3_Constructor_WithUnsupportedCurrencyCode3_ThrowsVal } [Fact] - public void Nox_CurrencyCode3_Equality_Tests() + public void CurrencyCode3_Equality_Tests() { var currencyCode3_1 = CurrencyCode3.From("USD"); @@ -161,7 +33,7 @@ public void Nox_CurrencyCode3_Equality_Tests() } [Fact] - public void Nox_CurrencyCode3_NotEqual_Tests() + public void CurrencyCode3_NotEqual_Tests() { var currencyCode3_1 = CurrencyCode3.From("RWF"); @@ -171,7 +43,7 @@ public void Nox_CurrencyCode3_NotEqual_Tests() } [Fact] - public void Nox_CurrencyCode3_ToString_ReturnsString() + public void CurrencyCode3_ToString_ReturnsString() { var currencyCode3 = CurrencyCode3.From("USD"); From ed7ff0e243303f9bc00feb7dbd260d21964a4193 Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Wed, 28 Jun 2023 08:58:03 -0300 Subject: [PATCH 09/11] Currency data --- tests/Nox.Types.Tests/CurrencyCodeData.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/Nox.Types.Tests/CurrencyCodeData.cs b/tests/Nox.Types.Tests/CurrencyCodeData.cs index b1e0480..35f5640 100644 --- a/tests/Nox.Types.Tests/CurrencyCodeData.cs +++ b/tests/Nox.Types.Tests/CurrencyCodeData.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.Collections; namespace Nox.Types.Tests.Types; public class CurrencyCodeData : IEnumerable From e96af20bf6d1d227dc5032fcacbb3556b2f208bb Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Wed, 28 Jun 2023 18:05:10 -0300 Subject: [PATCH 10/11] Changing method to be more readable --- src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs index 57300ab..e544a5a 100644 --- a/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs +++ b/src/Nox.Types.EntityFramework/CurrencyCode3Converter.cs @@ -10,6 +10,6 @@ public class CurrencyCode3Converter : ValueConverter /// /// Initializes a new instance of the class. /// - public CurrencyCode3Converter() : base(currencyCode3 => currencyCode3.Value, currencyCode3 => CurrencyCode3.From(currencyCode3)) { } + public CurrencyCode3Converter() : base(currencyCode3 => currencyCode3.Value, currencyCode3Value => CurrencyCode3.From(currencyCode3Value)) { } } From 4fe67db3fbbf55564b5ee204315814db3d6bb774 Mon Sep 17 00:00:00 2001 From: Denis Vieira dos Anjos Date: Tue, 4 Jul 2023 13:10:38 -0300 Subject: [PATCH 11/11] Change name class --- .../{NoxCurrencyCode3Tests.cs => CurrencyCode3Tests.cs} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename tests/Nox.Types.Tests/{NoxCurrencyCode3Tests.cs => CurrencyCode3Tests.cs} (97%) diff --git a/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs b/tests/Nox.Types.Tests/CurrencyCode3Tests.cs similarity index 97% rename from tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs rename to tests/Nox.Types.Tests/CurrencyCode3Tests.cs index f38932e..f42d38c 100644 --- a/tests/Nox.Types.Tests/NoxCurrencyCode3Tests.cs +++ b/tests/Nox.Types.Tests/CurrencyCode3Tests.cs @@ -1,7 +1,7 @@ using Nox.Types.Tests.Types; namespace Nox.Types.Tests; -public class NoxCurrencyCode3Tests +public class CurrencyCode3Tests { [Theory] [ClassData(typeof(CurrencyCodeData))]