Skip to content

Commit 9535227

Browse files
author
Yulian Ashikov
committed
Do not allow numbers less than -99999.99
1 parent 88278a0 commit 9535227

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

src/OneBitSoftware.Slovom/NumbersToWords.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ private static string AppendNegativePrefix(string numberAsWords, bool isNegative
136136

137137
public static string Convert(decimal number, CurrencyDescriptor currencyDescriptor)
138138
{
139+
if (number < -99999.99m) throw new ArgumentOutOfRangeException(nameof(number), "Входното число не може да бъде по-малко от -99999.99");
139140
ArgumentNullException.ThrowIfNull(currencyDescriptor);
140141

141142
if (number is 0 or 0.0m) return currencyDescriptor.Vocabulary.NumbersZeroToNineteen[0] + currencyDescriptor.MajorCurrencyUnitPlural; // нула лева, нула евро

src/Tests/ConvertTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,4 +185,12 @@ public void NumberToWordsEuro_ShouldReturnCorrectWordsForNegativeValues(decimal
185185
// Assert
186186
Assert.Equal(expected, result);
187187
}
188+
189+
[Theory]
190+
[InlineData(-100000)]
191+
public void Convert_WithNumberLessThanNegativeLimit_ShouldThrowArgumentOutOfRangeException(decimal number)
192+
{
193+
Assert.Throws<ArgumentOutOfRangeException>(() => NumbersToWords.Convert(number, CurrencyDescriptor.Bgn));
194+
Assert.Throws<ArgumentOutOfRangeException>(() => NumbersToWords.Convert(number, CurrencyDescriptor.Euro));
195+
}
188196
}

0 commit comments

Comments
 (0)