public void TestNotEmpty() { var obj = new TestClass(new BsonArray { 1, 2 }); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "[1, 2]").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestNull() { var obj = new TestClass { Addresses = null }; var json = obj.ToJson(); var expected = "{ 'Addresses' : null }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestTrue() { var obj = new TestClass { N = true, B = true, D = true, I = true, L = true, S = true }; var json = obj.ToJson(); var expected = "{ 'N' : true, 'B' : true, 'D' : 1.0, 'I' : 1, 'L' : NumberLong(1), 'S' : 'true' }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestFalse() { var obj = new TestClass { N = false, B = false, D = false, I = false, L = false, S = false }; var json = obj.ToJson(); var expected = "{ 'N' : false, 'B' : false, 'D' : 0, 'I' : 0, 'L' : 0, 'S' : 'false' }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestLength0() { var obj = new TestClass { B = new BitArray(new bool[0]), S = new BitArray(new bool[0]) }; var json = obj.ToJson(); var expected = "{ 'B' : new BinData(0, ''), 'S' : '' }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestNull() { var obj = new TestClass(null); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "{ '_csharpnull' : true }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.AreEqual(null, rehydrated.B); Assert.AreEqual(null, rehydrated.V); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestLength0() { var obj = new TestClass { V = new BitArray(new bool[0]) }; var json = obj.ToJson(); var expected = "{ 'V' : { '$binary' : '', '$type' : '00' } }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestTrue() { var obj = new TestClass { Boolean = true }; var json = obj.ToJson(); var expected = "{ 'Boolean' : true }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestLength1() { var obj = new TestClass { B = new BitArray(new[] { true }), S = new BitArray(new[] { true }) }; var json = obj.ToJson(); var expected = "{ 'B' : { 'Length' : 1, 'Bytes' : new BinData(0, 'AQ==') }, 'S' : '1' }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(rehydrated.B[0]); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestLength2() { var obj = new TestClass { V = new BitArray(new[] { true, true }) }; var json = obj.ToJson(); var expected = "{ 'V' : { 'Length' : 2, 'Bytes' : { '$binary' : 'Aw==', '$type' : '00' } } }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(rehydrated.V[0]); Assert.IsTrue(rehydrated.V[1]); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestOne() { var obj = new TestClass { C = 1, F = 1 }; var json = obj.ToJson(); var expected = "{ 'C' : 1, 'F' : { '_t' : 'System.Byte', 'v' : 1 } }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.AreEqual(rehydrated.C, rehydrated.F); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestSerialization() { var obj = new TestClass { Addresses = new HashSet<Address> { new Address { Street = "123 Main", City = "Smithtown", State = "PA", Zip = 12345 }, new Address { Street = "456 First", City = "Johnstown", State = "MD", Zip = 45678 } } }; var json = obj.ToJson(); var expected = "{ 'Addresses' : [#A1, #A2] }"; expected = expected.Replace("#A1", "{ 'Street' : '123 Main', 'City' : 'Smithtown', 'State' : 'PA', 'Zip' : 12345 }"); expected = expected.Replace("#A2", "{ 'Street' : '456 First', 'City' : 'Johnstown', 'State' : 'MD', 'Zip' : 45678 }"); expected = expected.Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsInstanceOf<HashSet<Address>>(rehydrated.Addresses); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestMinUtc() { var obj = new TestClass { DateTime = DateTime.SpecifyKind(DateTime.MinValue, DateTimeKind.Utc) }; long milliseconds = (long) (DateTime.MinValue - BsonConstants.UnixEpoch).TotalMilliseconds; var json = obj.ToJson(); var expected = ("{ 'DateTime' : { '$date' : " + milliseconds.ToString() + " } }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestMin() { var obj = new TestClass(long.MinValue); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "NumberLong('-9223372036854775808')").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestMinusOne() { var obj = new TestClass { Double = -1.0 }; var json = obj.ToJson(); var expected = "{ 'Double' : -1 }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestHelloWorld() { var obj = new TestClass { String = "Hello World" }; var json = obj.ToJson(); var expected = ("{ 'String' : 'Hello World' }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestZero() { var obj = new TestClass { Int64 = 0 }; var json = obj.ToJson(); var expected = "{ 'Int64' : 0 }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestEmpty() { var obj = new TestClass { Guid = Guid.Empty }; var json = obj.ToJson(); var expected = ("{ 'Guid' : { '$binary' : 'AAAAAAAAAAAAAAAAAAAAAA==', '$type' : '03' } }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestPositiveInfinity() { var obj = new TestClass { Double = double.PositiveInfinity }; var json = obj.ToJson(); var expected = "{ 'Double' : Infinity }".Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestNotEmpty() { var obj = new TestClass( new BsonDocument { { "A", 1 }, { "B", 2 } } ); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "{ 'A' : 1, 'B' : 2 }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestNew() { var obj = new TestClass { Guid = Guid.NewGuid() }; var json = obj.ToJson(); var base64 = Convert.ToBase64String(obj.Guid.ToByteArray()).Replace("\\", "\\\\"); var expected = ("{ 'Guid' : { '$binary' : '" + base64 + "', '$type' : '03' } }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestNull() { var obj = new TestClass(null); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "null").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); try { BsonSerializer.Deserialize<TestClass>(bson); Assert.Fail("Expected an exception to be thrown."); } catch (Exception ex) { var expectedMessage = "An error occurred while deserializing the V property of class MongoDB.BsonUnitTests.Serialization.BsonDocumentWrapperSerializerTests+TestClass: Specified method is not supported."; Assert.IsInstanceOf<FileFormatException>(ex); Assert.IsInstanceOf<NotSupportedException>(ex.InnerException); Assert.AreEqual(expectedMessage, ex.Message); } }
public void TestMin() { var obj = new TestClass { Int64 = long.MinValue }; var json = obj.ToJson(); var expected = ("{ 'Int64' : " + long.MinValue.ToString() + " }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestMin() { var obj = new TestClass(double.MinValue); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "-1.7976931348623157E+308").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestSerializer() { var obj = new TestClass { ObjectId = new ObjectId(1, 2, 3, 4) }; var json = obj.ToJson(); var expected = ("{ 'ObjectId' : { '$oid' : '000000010000020003000004' } }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestNegativeInfinity() { var obj = new TestClass(double.NegativeInfinity); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "-Infinity").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestLocal() { var obj = new TestClass { DateTime = new DateTime(2010, 10, 08, 13, 30, 0, DateTimeKind.Local) }; long milliseconds = (long) (obj.DateTime.ToUniversalTime() - BsonConstants.UnixEpoch).TotalMilliseconds; var json = obj.ToJson(); var expected = ("{ 'DateTime' : { '$date' : " + milliseconds.ToString() + " } }").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestMax() { var obj = new TestClass(int.MaxValue); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", int.MaxValue.ToString()).Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestSerialization() { var obj = new TestClass { Addresses = new HashSet<Address>() { new Address { Street = "123 Main", City = "Smithtown", State = "PA", Zip = 12345 }, new Address { Street = "456 First", City = "Johnstown", State = "MD", Zip = 45678 } } }; var json = obj.ToJson(); var expected = "{ 'Addresses' : { '_t' : '#T', 'v' : [#A1, #A2] } }"; expected = expected.Replace("#T", "System.Collections.Generic.HashSet`1[[MongoDB.BsonLibrary.UnitTests.Serialization.PropertySerializers.GenericEnumerable.Address, BsonLibraryUnitTests]], System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"); expected = expected.Replace("#A1", "{ 'Street' : '123 Main', 'City' : 'Smithtown', 'State' : 'PA', 'Zip' : 12345 }"); expected = expected.Replace("#A2", "{ 'Street' : '456 First', 'City' : 'Johnstown', 'State' : 'MD', 'Zip' : 45678 }"); expected = expected.Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsInstanceOf<HashSet<Address>>(rehydrated.Addresses); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }
public void TestMinusOne() { var obj = new TestClass(-1); var json = obj.ToJson(); var expected = "{ 'B' : #, 'V' : # }".Replace("#", "-1").Replace("'", "\""); Assert.AreEqual(expected, json); var bson = obj.ToBson(); var rehydrated = BsonSerializer.Deserialize<TestClass>(bson); Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); }