Пример #1
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        /// <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);
        }