public void RepairsOnReopen()
{
using (var fileCollection = new InMemoryFileCollection())
{
using (IKeyValueDB db = new KeyValueDB(fileCollection))
{
using (var tr = db.StartTransaction())
{
tr.CreateKey(_key1);
tr.Commit();
}
using (var tr = db.StartTransaction())
{
tr.CreateKey(Key2);
tr.Commit();
}
using (var tr = db.StartTransaction())
{
tr.CreateKey(_key3);
// rollback
}
using (IKeyValueDB db2 = new KeyValueDB(fileCollection))
{
using (var tr = db2.StartTransaction())
{
Assert.True(tr.FindExactKey(_key1));
Assert.True(tr.FindExactKey(Key2));
Assert.False(tr.FindExactKey(_key3));
}
}
}
using (IKeyValueDB db = new KeyValueDB(fileCollection))
{
using (var tr = db.StartTransaction())
{
Assert.True(tr.FindExactKey(_key1));
Assert.True(tr.FindExactKey(Key2));
Assert.False(tr.FindExactKey(_key3));
}
}
}
}