Пример #1
0
        public void SequenceValueStorage_Create_SupportsNullableDateTime()
        {
            DateTime?date    = DateTime.Now;
            var      storage = ValueStorageExtensions.CreateFromObject(date);

            Assert.True(storage.Type == ValueTypeEnum.DateTime);
            Assert.Equal(date.Value, storage.AsDateTime);
        }
Пример #2
0
        public void ValueStorageExtensions_CreateFromObject_ClonesSequences()
        {
            IList <Value> sequence = new List <Value>();
            var           storage  = ValueStorageExtensions.CreateFromObject(sequence);

            IList <Value> newSequence = storage.AsSequence;

            newSequence.Add(Value.One);

            Assert.Single(newSequence);
            Assert.Empty(sequence);
        }
Пример #3
0
        public void ValueStorageExtensions_CreateFromObject_ClonesBalances()
        {
            Balance balance = new Balance();
            var     storage = ValueStorageExtensions.CreateFromObject(balance);

            Balance newBalance = storage.AsBalance;

            newBalance.Add(new Amount(15));

            Assert.Single(newBalance.Amounts);
            Assert.Empty(balance.Amounts);
        }
Пример #4
0
        public void ValueStorageExtensions_CreateFromObject_ClonesAmounts()
        {
            Amount amount  = new Amount(10);
            var    storage = ValueStorageExtensions.CreateFromObject(amount);

            Amount newAmount = storage.AsAmount;

            newAmount.Multiply(new Amount(15));

            Assert.Equal(150, newAmount.Quantity.ToLong());
            Assert.Equal(10, amount.Quantity.ToLong());
        }
Пример #5
0
        public void ValueStorageExtensions_CreateFromObject_ClonesSequences()
        {
            IList <Value> sequence = new List <Value>();
            var           storage  = ValueStorageExtensions.CreateFromObject(sequence);

            IList <Value> newSequence = storage.AsSequence;

            newSequence.Add(Value.One);

            Assert.AreEqual(1, newSequence.Count());
            Assert.AreEqual(0, sequence.Count());
        }
Пример #6
0
        public void ValueStorageExtensions_CreateFromObject_ClonesBalances()
        {
            Balance balance = new Balance();
            var     storage = ValueStorageExtensions.CreateFromObject(balance);

            Balance newBalance = storage.AsBalance;

            newBalance.Add(new Amount(15));

            Assert.AreEqual(1, newBalance.Amounts.Count());
            Assert.AreEqual(0, balance.Amounts.Count());
        }
Пример #7
0
        public void SequenceValueStorage_Negate_CallsNegatedForChildren()
        {
            Amount        amount   = new Amount(100);
            IList <Value> sequence = new List <Value>();

            sequence.Add(Value.Get(amount));
            var storage = ValueStorageExtensions.CreateFromObject(sequence);

            storage.Negate();

            Amount newAmount = storage.AsSequence.First().AsAmount;

            Assert.Equal(-100, newAmount.Quantity.ToLong());
            Assert.Equal(100, amount.Quantity.ToLong());
        }
Пример #8
0
 public static Value Clone(Value value)
 {
     return(Value.IsNullOrEmpty(value) ? new Value() : new Value(ValueStorageExtensions.CreateFromObject(value.Storage.StoredValue)));
 }