public void TestMinimal() { var info = new SystemProfileInfo { Timestamp = new DateTime(2011, 10, 7, 0, 0, 0, DateTimeKind.Utc), Duration = TimeSpan.FromMilliseconds(123) }; var expected = "{ 'ts' : ISODate('2011-10-07T00:00:00Z'), 'millis' : 123.0 }".Replace("'", "\""); Assert.AreEqual(expected, info.ToJson()); }
public void TestDeserializeAll() { var info = new SystemProfileInfo { Abbreviated = "abbreviated", Client = "client", Command = new BsonDocument("command", 1), CursorId = 1, Duration = TimeSpan.FromMilliseconds(2), Error = "err", Exception = "exception", ExceptionCode = 3, Exhaust = true, FastMod = true, FastModInsert = true, IdHack = true, Info = "info", KeyUpdates = 4, LockStatistics = new SystemProfileLockStatistics { TimeAcquiring = new SystemProfileReadWriteLockStatistics { DatabaseReadLock = TimeSpan.FromMilliseconds(10), DatabaseWriteLock = TimeSpan.FromMilliseconds(20), GlobalReadLock = TimeSpan.FromMilliseconds(30), GlobalWriteLock = TimeSpan.FromMilliseconds(40) }, TimeLocked = new SystemProfileReadWriteLockStatistics { DatabaseReadLock = TimeSpan.FromMilliseconds(50), DatabaseWriteLock = TimeSpan.FromMilliseconds(60), GlobalReadLock = TimeSpan.FromMilliseconds(70), GlobalWriteLock = TimeSpan.FromMilliseconds(80) } }, Moved = true, Namespace = "ns", NumberMoved = 11, NumberReturned = 5, NumberScanned = 6, NumberToReturn = 7, NumberToSkip = 8, NumberUpdated = 9, NumberOfYields = 10, Op = "op", Query = new BsonDocument("query", 1), ResponseLength = 9, ScanAndOrder = true, Timestamp = new DateTime(2011, 10, 7, 1, 2, 3, DateTimeKind.Utc), UpdateObject = new BsonDocument("updateObject", 1), Upsert = true, User = "******" }; var json = info.ToJson(new JsonWriterSettings { Indent = true }); var rehydrated = BsonSerializer.Deserialize<SystemProfileInfo>(json); Assert.AreEqual(info.Abbreviated, rehydrated.Abbreviated); Assert.AreEqual(info.Client, rehydrated.Client); Assert.AreEqual(info.Command, rehydrated.Command); Assert.AreEqual(info.CursorId, rehydrated.CursorId); Assert.AreEqual(info.Duration, rehydrated.Duration); Assert.AreEqual(info.Error, rehydrated.Error); Assert.AreEqual(info.Exception, rehydrated.Exception); Assert.AreEqual(info.ExceptionCode, rehydrated.ExceptionCode); Assert.AreEqual(info.Exhaust, rehydrated.Exhaust); Assert.AreEqual(info.FastMod, rehydrated.FastMod); Assert.AreEqual(info.FastModInsert, rehydrated.FastModInsert); Assert.AreEqual(info.IdHack, rehydrated.IdHack); Assert.AreEqual(info.Info, rehydrated.Info); Assert.AreEqual(info.KeyUpdates, rehydrated.KeyUpdates); Assert.AreEqual(info.LockStatistics.RawDocument, rehydrated.LockStatistics.RawDocument); Assert.AreEqual(info.LockStatistics.TimeAcquiring.DatabaseReadLock, rehydrated.LockStatistics.TimeAcquiring.DatabaseReadLock); Assert.AreEqual(info.LockStatistics.TimeAcquiring.DatabaseWriteLock, rehydrated.LockStatistics.TimeAcquiring.DatabaseWriteLock); Assert.AreEqual(info.LockStatistics.TimeAcquiring.GlobalReadLock, rehydrated.LockStatistics.TimeAcquiring.GlobalReadLock); Assert.AreEqual(info.LockStatistics.TimeAcquiring.GlobalWriteLock, rehydrated.LockStatistics.TimeAcquiring.GlobalWriteLock); Assert.AreEqual(info.LockStatistics.TimeLocked.DatabaseReadLock, rehydrated.LockStatistics.TimeLocked.DatabaseReadLock); Assert.AreEqual(info.LockStatistics.TimeLocked.DatabaseWriteLock, rehydrated.LockStatistics.TimeLocked.DatabaseWriteLock); Assert.AreEqual(info.LockStatistics.TimeLocked.GlobalReadLock, rehydrated.LockStatistics.TimeLocked.GlobalReadLock); Assert.AreEqual(info.LockStatistics.TimeLocked.GlobalWriteLock, rehydrated.LockStatistics.TimeLocked.GlobalWriteLock); Assert.AreEqual(info.Moved, rehydrated.Moved); Assert.AreEqual(info.Namespace, rehydrated.Namespace); Assert.AreEqual(info.NumberMoved, rehydrated.NumberMoved); Assert.AreEqual(info.NumberReturned, rehydrated.NumberReturned); Assert.AreEqual(info.NumberScanned, rehydrated.NumberScanned); Assert.AreEqual(info.NumberToReturn, rehydrated.NumberToReturn); Assert.AreEqual(info.NumberToSkip, rehydrated.NumberToSkip); Assert.AreEqual(info.NumberUpdated, rehydrated.NumberUpdated); Assert.AreEqual(info.NumberOfYields, rehydrated.NumberOfYields); Assert.AreEqual(info.Op, rehydrated.Op); Assert.AreEqual(info.Query, rehydrated.Query); Assert.AreEqual(info.ResponseLength, rehydrated.ResponseLength); Assert.AreEqual(info.ScanAndOrder, rehydrated.ScanAndOrder); Assert.AreEqual(info.Timestamp, rehydrated.Timestamp); Assert.AreEqual(info.UpdateObject, rehydrated.UpdateObject); Assert.AreEqual(info.Upsert, rehydrated.Upsert); Assert.AreEqual(info.User, rehydrated.User); }