public void MongoSnapshotStore_Returns_Null_When_No_Snapshot_Exists()
        {
            var database = new Mock <IMongoRepository>();

            database.Setup(db => db.GetSnapshot(It.IsAny <Guid>()));

            var store = new MongoSnapshotStore
            {
                GetRepository = () => database.Object
            };

            var snapshot = store.GetSnapshot <BankAccountSnapshot>(Guid.NewGuid());

            Assert.IsNull(snapshot);
        }
        public void MongoSnapshotStore_Deserializes_Snapshot_Details()
        {
            var database = new Mock <IMongoRepository>();

            database.Setup(db => db.GetSnapshot(It.IsAny <Guid>())).Returns(new SnapshotDetail {
                SnapshotData = new BankAccountSnapshot {
                    Balance = 900
                }
            });

            var store = new MongoSnapshotStore
            {
                GetRepository = () => database.Object
            };

            var snapshot = store.GetSnapshot <BankAccountSnapshot>(Guid.NewGuid());

            Assert.AreEqual(900, snapshot.Data.Balance);
        }