public void GenerateAutoVersionTest()
        {
            Key         key;
            VersionInfo versionInfo;

            using (var session = Domain.OpenSession()) {
                using (var transactionScope = session.OpenTransaction()) {
                    var instance = new ItemWithAutoVersions();
                    key         = instance.Key;
                    versionInfo = instance.VersionInfo;
                    transactionScope.Complete();
                }
            }

            using (var session = Domain.OpenSession()) {
                using (var transactionScope = session.OpenTransaction()) {
                    var instance = session.Query.Single <ItemWithAutoVersions>(key);
                    Assert.AreEqual(versionInfo, instance.VersionInfo);
                    instance.Field = "New value";
                    transactionScope.Complete();
                }
            }

            using (var session = Domain.OpenSession()) {
                using (var transactionScope = session.OpenTransaction()) {
                    var instance = session.Query.Single <ItemWithAutoVersions>(key);
                    Assert.IsFalse(versionInfo == instance.VersionInfo);
                    transactionScope.Complete();
                }
            }
        }
        public void SerializeVersionInfoTest()
        {
            VersionInfo versionInfo;

            using (var session = Domain.OpenSession()) {
                using (var transactionScope = session.OpenTransaction()) {
                    var instance = new ItemWithAutoVersions();
                    versionInfo = instance.VersionInfo;
                    transactionScope.Complete();
                }
            }
            Assert.IsFalse(versionInfo.IsVoid);
            var clone = Cloner.Clone(versionInfo);

            Assert.IsFalse(clone.IsVoid);
            Assert.IsTrue(versionInfo == clone);
        }