public void ShouldCacheEventsBetweenInstancesTransaction()
{
using(var dbManager = new TemporaryLocalDbManager(ConfigurationManager.ConnectionStrings["MasterDb"].ConnectionString))
{
var connectionString = dbManager.CreateOrGetLocalDb("SqlServerEventStoreTest_EventStore2");
var something = new SqlServerEventStore(connectionString, new SingleThreadUseGuard());
var user = new User();
user.Register("[email protected]", "password", Guid.NewGuid());
var stored = (IEventStored)user;
using(var tran = new TransactionScope())
{
something.SaveEvents(stored.GetChanges());
something.GetAggregateHistory(user.Id);
Assert.That(something.GetAggregateHistory(user.Id), Is.Not.Empty);
tran.Complete();
}
something = new SqlServerEventStore(connectionString, new SingleThreadUseGuard());
var firstRead = something.GetAggregateHistory(user.Id).Single();
something = new SqlServerEventStore(connectionString, new SingleThreadUseGuard());
var secondRead = something.GetAggregateHistory(user.Id).Single();
Assert.That(firstRead, Is.SameAs(secondRead));
}
}
}