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));
        }
Пример #2
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);
        }
Пример #3
0
            public void WhenBuildBitCoin_ThenItShouldSuccedButNotBeRegistered()
            {
                var builder = new CurrencyBuilder("BTC2", "virtual");
                builder.EnglishName = "Bitcoin";
                builder.Symbol = "฿";
                builder.ISONumber = "123"; // iso number
                builder.DecimalDigits = 8;
                builder.IsObsolete = false;

                Currency result = builder.Build();
                result.Symbol.Should().Be("฿");

                Action action = () => Currency.FromCode("BTC2", "virtual");
                action.ShouldThrow<ArgumentException>().WithMessage("BTC2 is an unknown virtual currency code!");
            }
        public void WhenBuildBitCoin_ThenItShouldSuccedButNotBeRegistered()
        {
            var builder = new CurrencyBuilder("BTC2", "virtual");

            builder.EnglishName   = "Bitcoin";
            builder.Symbol        = "฿";
            builder.ISONumber     = "123"; // iso number
            builder.DecimalDigits = 8;

            Currency result = builder.Build();

            result.Symbol.Should().Be("฿");

            Action action = () => Currency.FromCode("BTC2", "virtual");

            action.ShouldThrow <ArgumentException>().WithMessage("BTC2 is an unknown virtual currency code!");
        }
Пример #5
0
        public void GivenCurrencyWhenValidatingThenRequiredRelationsMustExist()
        {
            var builder = new CurrencyBuilder(this.Session);

            builder.Build();

            Assert.True(this.Session.Derive(false).HasErrors);

            builder.WithIsoCode("BND").Build();

            Assert.True(this.Session.Derive(false).HasErrors);

            builder
            .WithLocalisedName(new LocalisedTextBuilder(this.Session)
                               .WithText("Brunei Dollar")
                               .WithLocale(new Locales(this.Session).FindBy(M.Locale.Name, Locales.EnglishGreatBritainName))
                               .Build());

            Assert.False(this.Session.Derive(false).HasErrors);
        }
Пример #6
0
        public void GivenCurrencyWhenValidatingThenRequiredRelationsMustExist()
        {
            var builder = new CurrencyBuilder(this.DatabaseSession);
            builder.Build();

            Assert.IsTrue(this.DatabaseSession.Derive().HasErrors);

            builder.WithIsoCode("BND").Build();

            Assert.IsTrue(this.DatabaseSession.Derive().HasErrors);

            builder.WithSymbol("$").Build();

            Assert.IsTrue(this.DatabaseSession.Derive().HasErrors);

            builder
                .WithLocalisedName(new LocalisedTextBuilder(this.DatabaseSession)
                .WithText("Brunei Dollar")
                .WithLocale(new Locales(this.DatabaseSession).FindBy(Locales.Meta.Name, Locales.EnglishGreatBritainName))
                .Build());

            Assert.IsFalse(this.DatabaseSession.Derive().HasErrors);
        }