public void TestFacetHandlerLoad() { var reader = IndexReader.Open(_ramDir, true); var list = new List<FacetHandler>(); var h1 = new NoopFacetHandler("A"); list.Add(h1); var s2 = new HashSet<string>(); s2.Add("A"); s2.Add("C"); s2.Add("D"); var h2 = new NoopFacetHandler("B", s2); list.Add(h2); var s3 = new HashSet<string>(); s3.Add("A"); s2.Add("D"); // BUG: Should this be s3? var h3 = new NoopFacetHandler("C", s3); list.Add(h3); var s4 = new HashSet<string>(); s4.Add("A"); var h4 = new NoopFacetHandler("D", s4); list.Add(h4); var s5 = new HashSet<string>(); s5.Add("E"); var h5 = new NoopFacetHandler("E", s5); list.Add(h5); using (var boboReader = BoboIndexReader.GetInstance(reader, list)) { using (var browser = new BoboBrowser(boboReader)) { var s6 = new HashSet<string>(); s6.Add("A"); s6.Add("B"); s6.Add("C"); s6.Add("D"); browser.SetFacetHandler(new NoopFacetHandler("runtime", s6)); var expected = new HashSet<string>(); expected.Add("A"); expected.Add("B"); expected.Add("C"); expected.Add("D"); expected.Add("E"); expected.Add("runtime"); var facetsLoaded = browser.GetFacetNames(); foreach (var name in facetsLoaded) { if (expected.Contains(name)) { expected.Remove(name); } else { Assert.Fail(name + " is not in expected set."); } } if (expected.Count > 0) { Assert.Fail("some facets not loaded: " + string.Join(", ", expected.ToArray())); } } } }