public virtual void TestCloseInnerReader() { Directory dir1 = GetDir1(Random); AtomicReader ir1 = SlowCompositeReaderWrapper.Wrap(DirectoryReader.Open(dir1)); // with overlapping ParallelAtomicReader pr = new ParallelAtomicReader(true, new AtomicReader[] { ir1 }, new AtomicReader[] { ir1 }); ir1.Dispose(); try { pr.Document(0); Assert.Fail("ParallelAtomicReader should be already closed because inner reader was closed!"); } #pragma warning disable 168 catch (ObjectDisposedException e) #pragma warning restore 168 { // pass } // noop: pr.Dispose(); dir1.Dispose(); }
public virtual void TestCloseInnerReader() { Directory dir1 = GetDir1(Random()); AtomicReader ir1 = SlowCompositeReaderWrapper.Wrap(DirectoryReader.Open(dir1)); // with overlapping ParallelAtomicReader pr = new ParallelAtomicReader(true, new AtomicReader[] { ir1 }, new AtomicReader[] { ir1 }); ir1.Dispose(); try { pr.Document(0); Assert.Fail("ParallelAtomicReader should be already closed because inner reader was closed!"); } catch (AlreadyClosedException e) { // pass } // noop: pr.Dispose(); dir1.Dispose(); }
public virtual void TestIgnoreStoredFields() { Directory dir1 = GetDir1(Random()); Directory dir2 = GetDir2(Random()); AtomicReader ir1 = SlowCompositeReaderWrapper.Wrap(DirectoryReader.Open(dir1)); AtomicReader ir2 = SlowCompositeReaderWrapper.Wrap(DirectoryReader.Open(dir2)); // with overlapping ParallelAtomicReader pr = new ParallelAtomicReader(false, new AtomicReader[] { ir1, ir2 }, new AtomicReader[] { ir1 }); Assert.AreEqual("v1", pr.Document(0).Get("f1")); Assert.AreEqual("v1", pr.Document(0).Get("f2")); Assert.IsNull(pr.Document(0).Get("f3")); Assert.IsNull(pr.Document(0).Get("f4")); // check that fields are there Assert.IsNotNull(pr.Terms("f1")); Assert.IsNotNull(pr.Terms("f2")); Assert.IsNotNull(pr.Terms("f3")); Assert.IsNotNull(pr.Terms("f4")); pr.Dispose(); // no stored fields at all pr = new ParallelAtomicReader(false, new AtomicReader[] { ir2 }, new AtomicReader[0]); Assert.IsNull(pr.Document(0).Get("f1")); Assert.IsNull(pr.Document(0).Get("f2")); Assert.IsNull(pr.Document(0).Get("f3")); Assert.IsNull(pr.Document(0).Get("f4")); // check that fields are there Assert.IsNull(pr.Terms("f1")); Assert.IsNull(pr.Terms("f2")); Assert.IsNotNull(pr.Terms("f3")); Assert.IsNotNull(pr.Terms("f4")); pr.Dispose(); // without overlapping pr = new ParallelAtomicReader(true, new AtomicReader[] { ir2 }, new AtomicReader[] { ir1 }); Assert.AreEqual("v1", pr.Document(0).Get("f1")); Assert.AreEqual("v1", pr.Document(0).Get("f2")); Assert.IsNull(pr.Document(0).Get("f3")); Assert.IsNull(pr.Document(0).Get("f4")); // check that fields are there Assert.IsNull(pr.Terms("f1")); Assert.IsNull(pr.Terms("f2")); Assert.IsNotNull(pr.Terms("f3")); Assert.IsNotNull(pr.Terms("f4")); pr.Dispose(); // no main readers try { new ParallelAtomicReader(true, new AtomicReader[0], new AtomicReader[] { ir1 }); Assert.Fail("didn't get expected exception: need a non-empty main-reader array"); } catch (System.ArgumentException iae) { // pass } dir1.Dispose(); dir2.Dispose(); }
public virtual void TestIgnoreStoredFields() { Directory dir1 = GetDir1(Random); Directory dir2 = GetDir2(Random); AtomicReader ir1 = SlowCompositeReaderWrapper.Wrap(DirectoryReader.Open(dir1)); AtomicReader ir2 = SlowCompositeReaderWrapper.Wrap(DirectoryReader.Open(dir2)); // with overlapping ParallelAtomicReader pr = new ParallelAtomicReader(false, new AtomicReader[] { ir1, ir2 }, new AtomicReader[] { ir1 }); Assert.AreEqual("v1", pr.Document(0).Get("f1")); Assert.AreEqual("v1", pr.Document(0).Get("f2")); Assert.IsNull(pr.Document(0).Get("f3")); Assert.IsNull(pr.Document(0).Get("f4")); // check that fields are there Assert.IsNotNull(pr.GetTerms("f1")); Assert.IsNotNull(pr.GetTerms("f2")); Assert.IsNotNull(pr.GetTerms("f3")); Assert.IsNotNull(pr.GetTerms("f4")); pr.Dispose(); // no stored fields at all pr = new ParallelAtomicReader(false, new AtomicReader[] { ir2 }, new AtomicReader[0]); Assert.IsNull(pr.Document(0).Get("f1")); Assert.IsNull(pr.Document(0).Get("f2")); Assert.IsNull(pr.Document(0).Get("f3")); Assert.IsNull(pr.Document(0).Get("f4")); // check that fields are there Assert.IsNull(pr.GetTerms("f1")); Assert.IsNull(pr.GetTerms("f2")); Assert.IsNotNull(pr.GetTerms("f3")); Assert.IsNotNull(pr.GetTerms("f4")); pr.Dispose(); // without overlapping pr = new ParallelAtomicReader(true, new AtomicReader[] { ir2 }, new AtomicReader[] { ir1 }); Assert.AreEqual("v1", pr.Document(0).Get("f1")); Assert.AreEqual("v1", pr.Document(0).Get("f2")); Assert.IsNull(pr.Document(0).Get("f3")); Assert.IsNull(pr.Document(0).Get("f4")); // check that fields are there Assert.IsNull(pr.GetTerms("f1")); Assert.IsNull(pr.GetTerms("f2")); Assert.IsNotNull(pr.GetTerms("f3")); Assert.IsNotNull(pr.GetTerms("f4")); pr.Dispose(); // no main readers try { new ParallelAtomicReader(true, new AtomicReader[0], new AtomicReader[] { ir1 }); Assert.Fail("didn't get expected exception: need a non-empty main-reader array"); } #pragma warning disable 168 catch (ArgumentException iae) #pragma warning restore 168 { // pass } dir1.Dispose(); dir2.Dispose(); }