public void Snapshots_are_numbered_correctly() { var config = new EngineConfiguration().ForImmutability().ForIsolatedTest(); var engine = Engine.Create<ImmutableModel>(config); engine.Execute(new AppendNumberCommand(42)); engine.Execute(new AppendNumberCommand(42)); engine.Execute(new AppendNumberCommand(42)); engine.Execute(new AppendNumberCommand(42)); engine.CreateSnapshot(); var store = config.CreateSnapshotStore(); Assert.AreEqual(4, store.Snapshots.First().Revision); Assert.AreEqual(1, store.Snapshots.Count()); }
public void SnapshotPerTransactionCreatesSnapshotsAndNoJournalEntries() { var config = new EngineConfiguration().ForIsolatedTest().ForImmutability(); config.PersistenceMode = PersistenceMode.SnapshotPerTransaction; var engine = Engine.Create<ImmutableModel>(config); engine.Execute(new AppendNumberCommand(2)); engine.Execute(new AppendNumberCommand(42)); engine.Execute(new AppendNumberCommand(12)); engine.Close(); var commandStore = config.CreateCommandStore(); var snapshotStore = config.CreateSnapshotStore(); Assert.AreEqual(3, snapshotStore.Snapshots.Count()); Assert.AreEqual(0, commandStore.GetJournalEntries().OfType<JournalEntry<Command>>().Count()); }
public void ManualSnaphots() { var config = new EngineConfiguration().ForIsolatedTest().ForImmutability(); config.PersistenceMode = PersistenceMode.ManualSnapshots; var engine = Engine.Create<ImmutableModel>(config); engine.Execute(new AppendNumberCommand(2)); engine.Execute(new AppendNumberCommand(42)); engine.CreateSnapshot(); engine.Execute(new AppendNumberCommand(12)); engine.Close(); var store = config.CreateSnapshotStore(); Assert.AreEqual(1, store.Snapshots.Count()); engine = Engine.Load<ImmutableModel>(config); var sum = engine.Execute(new NumberSumQuery()); Assert.AreEqual(44,sum); }
public void SnapshotPerTransactionCreatesSnapshotsAndNoJournalEntries() { var config = new EngineConfiguration().ForIsolatedTest().ForImmutability(); config.PersistenceMode = PersistenceMode.SnapshotPerTransaction; var engine = Engine.Create <ImmutableModel>(config); engine.Execute(new AppendNumberCommand(2)); engine.Execute(new AppendNumberCommand(42)); engine.Execute(new AppendNumberCommand(12)); engine.Close(); var commandStore = config.CreateCommandStore(); var snapshotStore = config.CreateSnapshotStore(); Assert.AreEqual(3, snapshotStore.Snapshots.Count()); Assert.AreEqual(0, commandStore.GetJournalEntries().OfType <JournalEntry <Command> >().Count()); }
public void ManualSnaphots() { var config = new EngineConfiguration().ForIsolatedTest().ForImmutability(); config.PersistenceMode = PersistenceMode.ManualSnapshots; var engine = Engine.Create <ImmutableModel>(config); engine.Execute(new AppendNumberCommand(2)); engine.Execute(new AppendNumberCommand(42)); engine.CreateSnapshot(); engine.Execute(new AppendNumberCommand(12)); engine.Close(); var store = config.CreateSnapshotStore(); Assert.AreEqual(1, store.Snapshots.Count()); engine = Engine.Load <ImmutableModel>(config); var sum = engine.Execute(new NumberSumQuery()); Assert.AreEqual(44, sum); }
public ModelLoader(EngineConfiguration config, ICommandStore commandStore = null, ISnapshotStore snapshotStore = null) { _commandStore = commandStore ?? config.CreateCommandStore(); _snapshotStore = snapshotStore ?? config.CreateSnapshotStore(); }