public void UnknownSnapshotNotAccepted()
        {
            var domainObject = new DefaultDomainObject();

            var versions = (domainObject.CurrentVersion, domainObject.MetaVersion);

            domainObject.ApplySnapshot(new DomainObjectSnapshot("ForgedDataType", "Some-Identifier", "{}", long.MaxValue, long.MaxValue));

            Assert.Equal(versions, (domainObject.CurrentVersion, domainObject.MetaVersion));
        }
        public void SnapshotAppliedInternally()
        {
            var domainObject = new DefaultDomainObject {
                FooBarSubProperty1 = 4242
            };

            domainObject.SetVersion(42, 42);

            var snapshot = domainObject.CreateSnapshot();

            Assert.RaisesAny <EventArgs>(e => domainObject.SnapshotAppliedInternally += e,
                                         e => domainObject.SnapshotAppliedInternally -= e,
                                         () => { domainObject.ApplySnapshot(snapshot); });

            Assert.Equal(42, domainObject.MetaVersion);
            Assert.Equal(42, domainObject.CurrentVersion);
        }