public void DatabaseLoadsAndUnloadsSecondaryIndex() { _testName = MethodInfo.GetCurrentMethod().Name.GetHashCode().ToString(); Cleanup(); var objs = TestResourceFactory.GetMockClassAObjects(25); objs[0].Name = "Booger"; objs[1].Name = "Pluckers"; objs[2].Name = "Pluckers"; using (var db = new Database<int, MockClassA>(_testName + ".database", "Id", new FileCore<int, long>()) .WithIndex<string>("catIndex", "CatalogName", new BinConverterString())) { db.Load(); using (var t = db.BeginTransaction()) { foreach (var o in objs) o.Id = db.Add(o); t.Commit(); } var check = db.FetchFromIndex<string>("catIndex", objs.First().CatalogName); Assert.IsNotNull(check); Assert.AreEqual(1, check.Count); Assert.AreEqual(objs.First().Id, check[0].Id); check = db.FetchFromIndex<string>("catIndex", "P"); Assert.IsNotNull(check); Assert.AreEqual(2, check.Count); check = db.FetchRangeFromIndexInclusive<string>("catIndex", "A", "C"); Assert.IsNotNull(check); Assert.AreEqual(23, check.Count); db.WithoutIndex("notThere"); db.WithoutIndex("catIndex"); } }