Ejemplo n.º 1
0
        static SerializationHelper()
        {
            var decimalSerializer = new DecimalSerializer(BsonType.Decimal128, new RepresentationConverter(allowOverflow: false, allowTruncation: false));

            BsonSerializer.RegisterSerializer(decimalSerializer);
            BsonSerializer.RegisterSerializer(new GuidSerializer(GuidRepresentation.Standard));
        }
Ejemplo n.º 2
0
        public void SerializeAndDeserializeToTheSameObject(decimal originalValue)
        {
            Serializer <decimal> serializer = new DecimalSerializer();

            byte[]  serializedValue   = serializer.Serialize(originalValue);
            decimal deserializedValue = serializer.Deserialize(serializedValue);

            Assert.Equal(originalValue, deserializedValue);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the BsonMoneySerializer class
 /// </summary>
 /// <param name="currencyFieldName">Field name for <see cref="Money.Currency"/> property</param>
 /// <param name="amountFieldName">Field name for <see cref="Money.Amount"/> property</param>
 /// <param name="amountRepresentation">Bson representation for <see cref="Money.Amount"/> value</param>
 /// <param name="registry">Custom serializer registry</param>
 public BsonMoneySerializer(
     string currencyFieldName         = DefaultCurrencyFieldName,
     string amountFieldName           = DefaultAmountFieldName,
     BsonType amountRepresentation    = DefaultAmountRepresentation,
     IBsonSerializerRegistry registry = null)
 {
     _currencyFieldName  = currencyFieldName;
     _amountFieldName    = amountFieldName;
     Representation      = amountRepresentation;
     _amountSerializer   = new DecimalSerializer(Representation);
     _currencySerializer = (registry ?? BsonSerializer.SerializerRegistry).GetSerializer <ICurrency>();
 }
        public void DecimalSerializer_ToDecimal_Throws_OverflowException_When_Value_Can_Not_Be_Represented_Test()
        {
            var values = new[]
            {
                Tuple.Create(BigInteger.Parse("123"), -28),
                Tuple.Create(BigInteger.Parse("123"), -27),
                Tuple.Create(BigInteger.Parse("1"), 29),
                Tuple.Create(BigInteger.Parse("123456789012345678901234567890"), 0)
            };

            foreach (var v in values)
            {
                Assert.Throws <ArgumentOutOfRangeException>(() => DecimalSerializer.ToDecimal(v.Item1, v.Item2), "For value: " + v.Item1);
            }
        }
        public void DecimalSerializer_ToDecimal_Converts_Test()
        {
            var values = new[]
            {
                Tuple.Create(BigInteger.Parse("1000"), 1, 100M),
                Tuple.Create(BigInteger.Parse("1000"), 0, 1000M),
                Tuple.Create(BigInteger.Parse("9223372036854776"), -1, 92233720368547760M),
                Tuple.Create(BigInteger.Parse("12345678901234567890"), 2, 123456789012345678.9M),
                Tuple.Create(BigInteger.Parse("79228162514264337593543950335"), 0, 79228162514264337593543950335M),
                Tuple.Create(BigInteger.Parse("79228162514264337593543950335"), 27, 79.228162514264337593543950335M),
                Tuple.Create(BigInteger.Parse("1"), -28, 10000000000000000000000000000m)
            };

            foreach (var v in values)
            {
                var decimalValue = DecimalSerializer.ToDecimal(v.Item1, v.Item2);
                Assert.AreEqual(v.Item3, decimalValue);
            }
        }
Ejemplo n.º 6
0
        public MongoWrapper(string connectionString, string databaseName)
        {
            Task.WaitAll(RegisterConventions());

            var decimalSerializer = new DecimalSerializer
                                    (
                BsonType.Decimal128,
                new MongoDB.Bson.Serialization.Options.RepresentationConverter(true, true)
                                    );

            BsonSerializer.RegisterSerializer(typeof(decimal), decimalSerializer);
            BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer <decimal>(decimalSerializer));

            MongoClient = new MongoClient(connectionString);

            Database = MongoClient.GetDatabase(databaseName);

            Task.WaitAll(CreateCollections());
            Task.WaitAll(CreateIndexes());
        }
Ejemplo n.º 7
0
 public WKTSerializers(ISerializerStorage serializerStorage, IValueTypeObjectsDictionary objectCache)
 {
     Boolean        = new BooleanSerializer(serializerStorage);
     Byte           = new ByteSerializer(serializerStorage);
     Char           = new CharSerializer(serializerStorage);
     DateTime       = new DateTimeSerializer(serializerStorage);
     DateTimeOffset = new DateTimeOffsetSerializer(serializerStorage);
     Decimal        = new DecimalSerializer(serializerStorage);
     Double         = new DoubleSerializer(serializerStorage);
     Guid           = new GuidSerializer(serializerStorage);
     Int16          = new Int16Serializer(serializerStorage);
     Int32          = new Int32Serializer(serializerStorage);
     Int64          = new Int64Serializer(serializerStorage);
     Object         = new ObjectSerializer(serializerStorage);
     SByte          = new SByteSerializer(serializerStorage);
     Single         = new SingleSerializer(serializerStorage);
     String         = new StringSerializer(serializerStorage, objectCache);
     TimeSpan       = new TimeSpanSerializer(serializerStorage);
     UInt16         = new UInt16Serializer(serializerStorage);
     UInt32         = new UInt32Serializer(serializerStorage);
 }
Ejemplo n.º 8
0
        public void ShouldThrowIfDeserializingLessThanSixteenBytes(byte[] data)
        {
            Serializer <decimal> serializer = new DecimalSerializer();

            Assert.Throws <ArgumentOutOfRangeException>(() => serializer.Deserialize(data));
        }
Ejemplo n.º 9
0
        public void ShouldThrowIfDeserializingNull()
        {
            Serializer <decimal> serializer = new DecimalSerializer();

            Assert.Throws <ArgumentNullException>(() => serializer.Deserialize(null));
        }
Ejemplo n.º 10
0
        public TestFixture()
        {
            var decimalSerializer = new DecimalSerializer(BsonType.Decimal128, new RepresentationConverter(allowOverflow: false, allowTruncation: false));

            BsonSerializer.RegisterSerializer(decimalSerializer);
        }
Ejemplo n.º 11
0
 static SerializationProvider()
 {
     structSerializers = new Dictionary <Type, IBsonSerializer>();
     decimalSerializer = new DecimalSerializer();
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IntSchema"/> class.
 /// </summary>
 public DoubleSchema()
 {
     MinValue   = decimal.MinValue;
     MaxValue   = decimal.MaxValue;
     Serializer = new DecimalSerializer();
 }