static SerializationHelper() { var decimalSerializer = new DecimalSerializer(BsonType.Decimal128, new RepresentationConverter(allowOverflow: false, allowTruncation: false)); BsonSerializer.RegisterSerializer(decimalSerializer); BsonSerializer.RegisterSerializer(new GuidSerializer(GuidRepresentation.Standard)); }
public void SerializeAndDeserializeToTheSameObject(decimal originalValue) { Serializer <decimal> serializer = new DecimalSerializer(); byte[] serializedValue = serializer.Serialize(originalValue); decimal deserializedValue = serializer.Deserialize(serializedValue); Assert.Equal(originalValue, deserializedValue); }
/// <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); } }
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()); }
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); }
public void ShouldThrowIfDeserializingLessThanSixteenBytes(byte[] data) { Serializer <decimal> serializer = new DecimalSerializer(); Assert.Throws <ArgumentOutOfRangeException>(() => serializer.Deserialize(data)); }
public void ShouldThrowIfDeserializingNull() { Serializer <decimal> serializer = new DecimalSerializer(); Assert.Throws <ArgumentNullException>(() => serializer.Deserialize(null)); }
public TestFixture() { var decimalSerializer = new DecimalSerializer(BsonType.Decimal128, new RepresentationConverter(allowOverflow: false, allowTruncation: false)); BsonSerializer.RegisterSerializer(decimalSerializer); }
static SerializationProvider() { structSerializers = new Dictionary <Type, IBsonSerializer>(); decimalSerializer = new DecimalSerializer(); }
/// <summary> /// Initializes a new instance of the <see cref="IntSchema"/> class. /// </summary> public DoubleSchema() { MinValue = decimal.MinValue; MaxValue = decimal.MaxValue; Serializer = new DecimalSerializer(); }