Skip to content

Commit

Permalink
Fix xUnit1045 warning.
Browse files Browse the repository at this point in the history
  • Loading branch information
sarahelsaig committed May 22, 2024
1 parent 7eebeb6 commit 32b6d2e
Showing 1 changed file with 26 additions and 11 deletions.
37 changes: 26 additions & 11 deletions test/OrchardCore.Commerce.Tests/CurrencyTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using OrchardCore.Commerce.MoneyDataType;
using OrchardCore.Commerce.MoneyDataType.Abstractions;
using System.Collections.Generic;
using System.Globalization;
using Xunit;
using static OrchardCore.Commerce.MoneyDataType.Currency;
Expand All @@ -8,28 +9,42 @@ namespace OrchardCore.Commerce.Tests;

public class CurrencyTests
{
private static readonly IEnumerable<ICurrencyProvider> _currencyProviders = new[] { new CurrencyProvider() };

public static CurrencyTheoryData TestData => new()
{
{ UsDollar, 1234.56m, "$1,234.56" },
{ Euro, 1234.56m, "€1234.56" },
{ JapaneseYen, 1234.56m, "¥1,235" },
{ BritishPound, 1234.56m, "£1,234.56" },
{ AustralianDollar, 1234.56m, "$1,234.56" },
{ CanadianDollar, 1234.56m, "$1,234.56" },
{ SwissFranc, 1234.56m, "CHF 1’234.56" }, // #spell-check-ignore-line
{ ChineseYuan, 1234.56m, "¥1,234.56" },
{ new Currency("My FOO", "My FOO", "f", "FOO"), 1234.56m, string.Create(CultureInfo.InvariantCulture, $"(FOO) {1234.56m:N}") },
{ UsDollar.CurrencyIsoCode, 1234.56m, "$1,234.56" },
{ Euro.CurrencyIsoCode, 1234.56m, "€1234.56" },
{ JapaneseYen.CurrencyIsoCode, 1234.56m, "¥1,235" },
{ BritishPound.CurrencyIsoCode, 1234.56m, "£1,234.56" },
{ AustralianDollar.CurrencyIsoCode, 1234.56m, "$1,234.56" },
{ CanadianDollar.CurrencyIsoCode, 1234.56m, "$1,234.56" },
{ SwissFranc.CurrencyIsoCode, 1234.56m, "CHF 1’234.56" }, // #spell-check-ignore-line
{ ChineseYuan.CurrencyIsoCode, 1234.56m, "¥1,234.56" },
};

[Theory]
[MemberData(nameof(TestData))]
public void CurrenciesProperlyFormatAmounts(ICurrency currency, decimal amount, string expectedFormat)
public void KnownCurrenciesProperlyFormatAmounts(string currencyCode, decimal amount, string expectedFormat)
{
var currency = FromIsoCurrencyCode(currencyCode, _currencyProviders);
Validate(currency, amount, expectedFormat);
}

[Fact]
public void CustomCurrencyProperlyFormatsAmount()
{
var currency = new Currency("My FOO", "My FOO", "f", "FOO");
Validate(currency, 1234.56m, string.Create(CultureInfo.InvariantCulture, $"(FOO) {1234.56m:N}"));
}

private static void Validate(ICurrency currency, decimal amount, string expectedFormat)
{
var result = currency.ToString(amount).Replace(" ", string.Empty).Replace('¥', '¥');
Assert.Equal(expectedFormat.Replace(" ", string.Empty).Replace('¥', '¥'), result);
}

public class CurrencyTheoryData : TheoryData<ICurrency, decimal, string>
public class CurrencyTheoryData : TheoryData<string, decimal, string>
{
}
}

0 comments on commit 32b6d2e

Please sign in to comment.