public void AfmReturnsRightNumberOfJObjects() { _testName = MethodInfo.GetCurrentMethod().Name.GetHashCode().ToString(); Cleanup(); var formatter = new BSONFormatter(); var core = new FileCore<int, long>() { IdSeed = new Seed32(999), SegmentSeed = new Seed64(), MinimumCoreStride = 512 }; var addEntities = TestResourceFactory.GetMockClassAObjects(10000).ToList(); foreach (var entity in addEntities) entity.Id = _seed.Increment(); IDictionary<int, long> returnSegments = null; using (var afm = new AtomicFileManager<MockClassA>(_testName + ".database", core)) { afm.Load<int>(); using (var manager = new TransactionManager<int, MockClassA> (new MockTransactionFactory<int, MockClassA>() , new TransactionSynchronizer<int, MockClassA>())) { manager.TransactionCommitted += new TransactionCommit<int, MockClassA>( delegate(ITransaction<int, MockClassA> tranny) { returnSegments = afm.CommitTransaction(tranny, new Dictionary<int, long>()); tranny.MarkComplete(); }); using (var tLock1 = manager.BeginTransaction()) { addEntities.ForEach(delegate(MockClassA entity) { tLock1.Transaction.Enlist(Action.Create, entity.Id, entity); }); tLock1.Transaction.Commit(); Assert.AreEqual(10000, afm.Length); } foreach (var group in afm.AsEnumerable()) { var match = group.Where(i => i.SelectToken("Id").Value<int>() > 9999).ToList(); if (match == null || !match.Any()) continue; var result = match.First(r => r.Value<int>("Id") == 10000).ToObject<MockClassC>(); Assert.IsNotNull(result); Assert.AreEqual(10000, result.Id); break; } } } }