Example #1
0
        public void ExternalsTokenStream()
        {
            string text = "-r5000 ^/Internals/shared/ shared" + Environment.NewLine
                          + "svn://moria/export mcl/dlls";

            PathTokenStream ts = new PathTokenStream(text);
            Token           t  = new Token();

            Assert.That(NextToken(ts, t), Is.EqualTo("-R5000"));
            Assert.That(NextToken(ts, t), Is.EqualTo("^"));
            Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("INTERNALS/"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("SHARED/"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("SHARED"));
            Assert.That(NextToken(ts, t), Is.EqualTo("SVN"));
            Assert.That(NextToken(ts, t), Is.EqualTo(":"));
            Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("MORIA/"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("EXPORT"));
            Assert.That(NextToken(ts, t), Is.EqualTo("MCL/"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("DLLS"));
            Assert.That(NextToken(ts, t), Is.Null);
        }
Example #2
0
        public void PathTokenStream_GapQuery()
        {
            var ts = new PathTokenStream("Fileio/**/fileio.*");
            var t  = new Token();

            Assert.That(NextToken(ts, t), Is.EqualTo("FILEIO/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("**/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("FILEIO"));
            Assert.That(NextToken(ts, t), Is.EqualTo(".*"));
            Assert.That(NextToken(ts, t), Is.Null);
        }
Example #3
0
        public void PathTokenStream()
        {
            var ts = new PathTokenStream("/Internals/White Space/str#nge.net/file.des*n?r.ext");
            var t  = new Token();

            Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("INTERNALS/"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("WHITE"));
            Assert.That(NextToken(ts, t), Is.EqualTo("SPACE/"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("STR#NGE"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("."));
            Assert.That(NextToken(ts, t), Is.EqualTo(".NET/"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("/"));
            Assert.That(NextToken(ts, t), Is.EqualTo("FILE"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("."));
            Assert.That(NextToken(ts, t), Is.EqualTo(".DES*N?R"));
            //Assert.That(NextToken(ts, t), Is.EqualTo("."));
            Assert.That(NextToken(ts, t), Is.EqualTo(".EXT"));
            Assert.That(NextToken(ts, t), Is.Null);
        }
Example #4
0
        static TestIndex()
        {
            Directory   directory = new RAMDirectory();
            IndexWriter writer    = new IndexWriter(directory, null, true);

            writer.SetMaxFieldLength(MaxNumberOfTermsPerDocument);
            var      pathTokenStream      = new PathTokenStream("");
            var      contentTokenStream   = new SimpleTokenStream("");
            var      externalsTokenStream = new PathTokenStream("");
            Field    field_id             = new Field("id", "", Field.Store.YES, Field.Index.UN_TOKENIZED);
            Field    field_rev_first      = new Field(FieldName.RevisionFirst, "", Field.Store.NO, Field.Index.UN_TOKENIZED);
            Field    field_rev_last       = new Field(FieldName.RevisionLast, "", Field.Store.NO, Field.Index.UN_TOKENIZED);
            Document doc = new Document();

            doc.Add(field_id);
            doc.Add(new Field(FieldName.Path, pathTokenStream));
            doc.Add(new Field(FieldName.Content, contentTokenStream));
            doc.Add(new Field(FieldName.Externals, externalsTokenStream));
            doc.Add(field_rev_first);
            doc.Add(field_rev_last);
            for (int i = 0; i < Data.GetLength(0); ++i)
            {
                string id = Data[i, 1];
                field_id.SetValue(id);
                pathTokenStream.SetText(id);
                int rev_first = Revision.Head;
                if (id.StartsWith("/revisions"))
                {
                    contentTokenStream.SetText("");
                    externalsTokenStream.SetText("");
                    rev_first = int.Parse(Data[i, 2]);
                }
                else
                {
                    contentTokenStream.SetText(Data[i, 2]);
                    externalsTokenStream.SetText(Data[i, 3]);
                }
                field_rev_first.SetValue(RevisionFieldValue(rev_first));
                field_rev_last.SetValue(HeadRevisionFieldValue());
                writer.AddDocument(doc);

                if (id.StartsWith("/revisions") && Data[i, 3] != null) // update last revision
                {
                    // Change the last revision
                    // Warning: It is not possible to load a document from the index
                    // We have to rebuild/reparse it from the scratch
                    writer.DeleteDocuments(new Term("id", id));
                    pathTokenStream.SetText(id);
                    contentTokenStream.SetText("");
                    externalsTokenStream.SetText("");
                    int rev_last = int.Parse(Data[i, 3]);
                    field_rev_last.SetValue(RevisionFieldValue(rev_last));
                    id        += "@" + rev_first;
                    Data[i, 1] = id;
                    field_id.SetValue(id);
                    writer.AddDocument(doc);
                }
            }

            // delete non existent document test
            writer.DeleteDocuments(new Term("id", "bliflaiwj123dj33"));

            writer.Optimize();
            writer.Close();

            Searcher = new IndexSearcher(directory);
            Assert.AreEqual(Data.GetLength(0), Searcher.MaxDoc()); // smoke test for index creation
        }