public void HighPrecisionMoneyToDecimal() { var m = new HighPrecisionMoney() { CurrencyCode = "EUR", PreciseAmount = 12345678, FractionDigits = 4 }; decimal expect = 1234.5678M; Assert.Equal(expect, m.AmountToDecimal()); }
public void HighPrecisionMoneySerialization() { ISerializerService serializerService = this.serializationFixture.SerializerService; var m = HighPrecisionMoney.FromDecimal("EUR", 1234.56789M, 4); var serialize = serializerService.Serialize(m); JToken resultFormatted = JValue.Parse(serialize); JToken serializedFormatted = JValue.Parse(@"{""type"":""highPrecision"",""preciseAmount"":12345679,""currencyCode"":""EUR"",""centAmount"":123457,""fractionDigits"":4}"); serializedFormatted.Should().BeEquivalentTo(resultFormatted); }
public void ConvertHighPrecisionMoney() { var m = new HighPrecisionMoney() { CurrencyCode = "EUR", PreciseAmount = 12345678, FractionDigits = 4 }; var nm = m.ToNodaMoney(); Assert.IsType <NodaMoney.Money>(nm); Assert.Equal(1234.5678M, nm.Amount); }
/// <summary> /// Get List of Price Drafts Based on project Currencies /// </summary> /// <param name="project"></param> /// <param name="moneyTestType">pass type to identify money type (either CentPrecision or HighPrecisionMoney or Default Money)</param> /// <returns></returns> private static List <PriceDraft> GetListOfPriceDraft(Project.Project project, MoneyTestTypes moneyTestType) { List <PriceDraft> priceDrafts = new List <PriceDraft>(); Money value = null; long centAmount = Helper.GetRandomNumber(10, 999999); switch (moneyTestType) { case MoneyTestTypes.HighPrecision: value = new HighPrecisionMoney() { CentAmount = 100, FractionDigits = 3, PreciseAmount = 1000 }; break; case MoneyTestTypes.CentPrecision: value = new CentPrecisionMoney() { CentAmount = centAmount, FractionDigits = 2 }; break; default: value = new Money() { CentAmount = centAmount }; break; } foreach (string currency in project.Currencies) { value.CurrencyCode = currency; priceDrafts.Add(new PriceDraft(value)); } return(priceDrafts); }