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)); }
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); }
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!"); }
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); }
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); }