コード例 #1
0
        public void Equals_Passing_Valid_Values_Returns_True(Currency.CodeName code)
        {
            var left  = Currency.Create(code);
            var right = Currency.Create(code);

            var isEqual = left.Equals(right);

            Assert.IsTrue(isEqual);
        }
コード例 #2
0
        public void OperatorNotEqual_Passing_Valid_Values_Returns_True(Currency.CodeName code)
        {
            var left  = Currency.Create(code);
            var right = Currency.Create(Currency.CodeName.USD);

            var isEqual = left != right;

            Assert.IsTrue(isEqual);
        }
コード例 #3
0
        public void OperatorEqual_Passing_Valid_Distinct_Values_Returns_False(Currency.CodeName code)
        {
            var left  = Currency.Create(code);
            var right = Currency.Create(Currency.CodeName.USD);

            var isEqual = left == right;

            Assert.IsFalse(isEqual);
        }
コード例 #4
0
        public void Equals_Passing_Valid_Values_Returns_True(double amount, Currency.CodeName code, int numbeOfDecimals)
        {
            var amountDecimal = Convert.ToDecimal(amount);
            var left          = Money.Create(amountDecimal, Currency.Create(code), numbeOfDecimals);
            var right         = Money.Create(amountDecimal, Currency.Create(code), numbeOfDecimals);

            var isEqual = left.Equals(right);

            Assert.IsTrue(isEqual);
        }
コード例 #5
0
        public void ToString_Passing_Valid_Values_Returns_Currency_String_Symbol(Currency.CodeName code)
        {
            var cultureInfo = GetCultureInfo(code);

            var result = Currency.Create(code);

            var actual = result.ToString();

            Assert.AreEqual(cultureInfo.NumberFormat.CurrencySymbol, actual);
        }
コード例 #6
0
        public void Change_Passing_Valid_Values_Returns_Currency(Currency.CodeName code)
        {
            var expected = Currency.CodeName.USD;

            var actual = Currency.Create(code);

            actual.ChangeCurrency(expected);

            Assert.AreEqual(expected.ToString(), actual.Code);
        }
コード例 #7
0
        public void Create_Passing_Valid_Values_Returns_Currency(Currency.CodeName code)
        {
            var cultureInfo = GetCultureInfo(code);

            var actual = Currency.Create(code);

            Assert.AreEqual(cultureInfo.NumberFormat.CurrencySymbol, actual.Symbol);
            Assert.AreEqual(code.ToString(), actual.Code);
            Assert.AreEqual(new RegionInfo(cultureInfo.Name).CurrencyNativeName, actual.Name);
        }
コード例 #8
0
        public void Create_Passing_Valid_Values_Returns_Address(double amount, Currency.CodeName code, int numbeOfDecimals)
        {
            var amountDecimal = Convert.ToDecimal(amount);
            var currency      = Currency.Create(code);

            var actual = Money.Create(amountDecimal, currency, numbeOfDecimals);

            Assert.AreEqual(amountDecimal, actual.Amount);
            Assert.AreEqual(currency, actual.Currency);
            Assert.AreEqual(numbeOfDecimals, actual.NumbeOfDecimals);
        }
コード例 #9
0
        public void OperatorEqual_Passing_Valid_Values_Returns_True(double amount, Currency.CodeName code, int numbeOfDecimals)
        {
            var amountDecimal = Convert.ToDecimal(amount);
            var currency      = Currency.Create(code);

            var left  = Money.Create(amountDecimal, currency, numbeOfDecimals);
            var right = Money.Create(amountDecimal, currency, numbeOfDecimals);

            var isEqual = left == right;

            Assert.IsTrue(isEqual);
        }
コード例 #10
0
        public void Change_Passing_Valid_Values_Returns_Address(double amount, Currency.CodeName code, int numbeOfDecimals)
        {
            var     amountDecimal           = Convert.ToDecimal(amount);
            decimal expectedAmount          = 999;
            var     expectedCurrency        = Currency.Create(Currency.CodeName.USD);
            var     expectedNumbeOfDecimals = 5;

            var actual = Money.Create(amountDecimal, Currency.Create(code), numbeOfDecimals);

            actual
            .ChangeAmount(expectedAmount)
            .ChangeCurrency(expectedCurrency)
            .ChangeNumbeOfDecimals(expectedNumbeOfDecimals);

            Assert.AreEqual(expectedAmount, actual.Amount);
            Assert.AreEqual(expectedCurrency, actual.Currency);
            Assert.AreEqual(expectedNumbeOfDecimals, actual.NumbeOfDecimals);
        }
コード例 #11
0
        public void ToString_Passing_Valid_Values_Returns_Address_String_Format(double amount, Currency.CodeName code, int numbeOfDecimals)
        {
            var currency      = Currency.Create(code);
            var amountDecimal = Convert.ToDecimal(amount);
            var expected      = $"{currency.ToString()} {amount}";
            var result        = Money.Create(amountDecimal, currency, numbeOfDecimals);

            var actual = result.ToString();

            Assert.AreEqual(expected, actual);
        }
コード例 #12
0
        public void Create_Passing_InvalidOrNull_Value_Returns_ApplicationException(double amount, Currency.CodeName code, int numbeOfDecimals)
        {
            var amountDecimal = Convert.ToDecimal(amount);
            var currency      = Currency.Create(code);

            Assert.ThrowsException <ApplicationException>(() => Money.Create(amountDecimal, currency, numbeOfDecimals));
        }
コード例 #13
0
 public void Create_Passing_InvalidOrNull_Value_Returns_ApplicationException(Currency.CodeName code)
 {
     Assert.ThrowsException <ApplicationException>(() => Currency.Create(code));
 }
コード例 #14
0
 private static CultureInfo GetCultureInfo(Currency.CodeName code)
 => CultureInfo.GetCultures(CultureTypes.SpecificCultures)
 .First(culture => new RegionInfo(culture.LCID).ISOCurrencySymbol == code.ToString());