public void Basic_memento_restore()
        {
            sut.ApplyEvent(new TestDomainEvent()
            {
                Value = 42
            });
            var memento = sut.GetSnapshot();

            var newSut1 = new TestProjector();

            newSut1.Restore(memento);

            var newSut2 = new TestProjector();

            newSut2.Restore(memento);

            newSut1.ApplyEvent(new TestDomainEvent()
            {
                Value = 1
            });
            Assert.That(newSut1.GetProjection().Sum, Is.EqualTo(43));

            newSut2.ApplyEvent(new TestDomainEvent()
            {
                Value = 2
            });
            Assert.That(newSut2.GetProjection().Sum, Is.EqualTo(44), "State shared instances between events");
        }
 public void Basic_apply_event_on_unfolder()
 {
     sut.ApplyEvent(new TestDomainEvent()
     {
         Value = 42
     });
     Assert.That(sut.GetProjection().Sum, Is.EqualTo(42));
 }