public static NodaMoney.Money ToNodaMoney(this HighPrecisionMoney money, MidpointRounding midpointRounding = MidpointRounding.ToEven)
        {
            var builder = new CurrencyBuilder(money.CurrencyCode, "HighPrecision");

            builder.LoadDataFromCurrency(Currency.FromCode(money.CurrencyCode));
            builder.DecimalDigits = money.FractionDigits.GetValueOrDefault();

            return(new NodaMoney.Money(money.AmountToDecimal(), builder.Build(), midpointRounding));
        }
Esempio n. 2
0
        public void WhenRegisterExistingCurrency_ThenThrowExeception()
        {
            var builder = new CurrencyBuilder("EUR", "ISO-4217");

            var euro = Currency.FromCode("EUR");

            builder.LoadDataFromCurrency(euro);

            Action action = () => builder.Register();

            action.Should().Throw <InvalidOperationException>().WithMessage("The custom currency is already registered.");
        }
Esempio n. 3
0
        public void ConvertToMoney()
        {
            var builder = new CurrencyBuilder("EUR", "HighPrecision");

            builder.LoadDataFromCurrency(Currency.FromCode("EUR"));
            builder.DecimalDigits = 4;

            var nm = new NodaMoney.Money(1234.5678m, builder.Build());
            var m  = nm.ToCtpMoney();

            Assert.IsType <Money>(m);
            Assert.Equal(123457, m.CentAmount);
            Assert.Equal("EUR", m.CurrencyCode);
        }
Esempio n. 4
0
            public void WhenUnregisterIsoCurrency_ThenThisMustSucceed()
            {
                var euro = Currency.FromCode("EUR"); // should work

                CurrencyBuilder.Unregister("EUR", "ISO-4217");
                Action action = () => Currency.FromCode("EUR");

                action.ShouldThrow <ArgumentException>().WithMessage("*unknown*currency*");

                // register again for other unit-tests
                var builder = new CurrencyBuilder("EUR", "ISO-4217");

                builder.LoadDataFromCurrency(euro);
                builder.Register();
            }
Esempio n. 5
0
        public void WhenFromExistingCurrency_ThenThisShouldSucceed()
        {
            var builder = new CurrencyBuilder("BTC3", "virtual");

            var euro = Currency.FromCode("EUR");

            builder.LoadDataFromCurrency(euro);

            builder.Code.Should().Be("BTC3");
            builder.Namespace.Should().Be("virtual");
            builder.EnglishName.Should().Be(euro.EnglishName);
            builder.Symbol.Should().Be(euro.Symbol);
            builder.ISONumber.Should().Be(euro.Number);
            builder.DecimalDigits.Should().Be(euro.DecimalDigits);
            builder.ValidFrom.Should().Be(euro.ValidFrom);
            builder.ValidTo.Should().Be(euro.ValidTo);
        }
Esempio n. 6
0
            public void WhenFromExistingCurrency_ThenThisShouldSucceed()
            {
                var builder = new CurrencyBuilder("BTC3", "virtual");

                var euro = Currency.FromCode("EUR");
                builder.LoadDataFromCurrency(euro);

                builder.Code.Should().Be("BTC3");
                builder.Namespace.Should().Be("virtual");
                builder.EnglishName.Should().Be(euro.EnglishName);
                builder.Symbol.Should().Be(euro.Symbol);
                builder.ISONumber.Should().Be(euro.Number);
                builder.DecimalDigits.Should().Be(euro.DecimalDigits);
                builder.IsObsolete.Should().Be(euro.IsObsolete);
                builder.ValidFrom.Should().Be(euro.ValidFrom);
                builder.ValidTo.Should().Be(euro.ValidTo);
            }
Esempio n. 7
0
            public void WhenReplacingEuroWithCustom_ThenThisShouldSucceed()
            {
                Currency oldEuro = CurrencyBuilder.Unregister("EUR", "ISO-4217");

                var builder = new CurrencyBuilder("EUR", "ISO-4217");

                builder.LoadDataFromCurrency(oldEuro);
                builder.EnglishName   = "New Euro";
                builder.DecimalDigits = 1;

                builder.Register();

                Currency newEuro = Currency.FromCode("EUR");

                newEuro.Symbol.Should().Be("€");
                newEuro.EnglishName.Should().Be("New Euro");
                newEuro.DecimalDigits.Should().Be(1);
            }
Esempio n. 8
0
        public void WhenReplacingEuroWithCustom_ThenThisShouldSucceed()
        {
            // Panamanian balboa
            var oldEuro = CurrencyBuilder.Unregister("PAB", "ISO-4217");

            var builder = new CurrencyBuilder("PAB", "ISO-4217");

            builder.LoadDataFromCurrency(oldEuro);
            builder.EnglishName   = "New Panamanian balboa";
            builder.DecimalDigits = 1;

            builder.Register();

            var newEuro = Currency.FromCode("PAB");

            newEuro.Symbol.Should().Be("B/.");
            newEuro.EnglishName.Should().Be("New Panamanian balboa");
            newEuro.DecimalDigits.Should().Be(1);
        }
Esempio n. 9
0
            public void WhenReplacingEuroWithCustom_ThenThisShouldSucceed()
            {
                Currency oldEuro = CurrencyBuilder.Unregister("EUR", "ISO-4217");

                var builder = new CurrencyBuilder("EUR", "ISO-4217");
                builder.LoadDataFromCurrency(oldEuro);
                builder.EnglishName = "New Euro";
                builder.DecimalDigits = 1;

                builder.Register();

                Currency newEuro = Currency.FromCode("EUR");
                newEuro.Symbol.Should().Be("€");
                newEuro.EnglishName.Should().Be("New Euro");
                newEuro.DecimalDigits.Should().Be(1);
            }
Esempio n. 10
0
            public void WhenUnregisterIsoCurrency_ThenThisMustSucceed()
            {
                var euro = Currency.FromCode("EUR"); // should work

                CurrencyBuilder.Unregister("EUR", "ISO-4217");
                Action action = () => Currency.FromCode("EUR");

                action.ShouldThrow<ArgumentException>().WithMessage("*unknown*currency*");

                // register again for other unit-tests
                var builder = new CurrencyBuilder("EUR", "ISO-4217");
                builder.LoadDataFromCurrency(euro);
                builder.Register();
            }