lux.functions.InsertDocumentTest.java Source code

Java tutorial

Introduction

Here is the source code for lux.functions.InsertDocumentTest.java

Source

package lux.functions;

import static lux.index.IndexConfiguration.*;
import lux.IndexTestSupport;
import lux.index.XmlIndexer;

import org.apache.lucene.store.RAMDirectory;
import org.junit.BeforeClass;
import org.junit.Test;

public class InsertDocumentTest extends XQueryTest {

    private static IndexTestSupport indexTestSupport;

    @BeforeClass
    public static void setup() throws Exception {
        RAMDirectory dir = new RAMDirectory();
        indexTestSupport = new IndexTestSupport(
                new XmlIndexer(INDEX_PATHS | INDEX_FULLTEXT | STORE_DOCUMENT | STORE_TINY_BINARY), dir);
        evaluator = indexTestSupport.makeEvaluator();
    }

    @Test
    public void testInsertDocument() throws Exception {
        assertXQuery(null, "lux:insert('/test.xml', <test>this is a test</test>)");
        assertXQuery(null, "doc('/test.xml')", "document not found: /test.xml");
        assertXQuery(null, "lux:commit()");
        evaluator.reopenSearcher(); // need to do this to see the updates
        assertXQuery("this is a test", "doc('/test.xml')/test/string()");
        assertXQuery("lux://test.xml", "lux:search('this is a test')/base-uri()");
        // find document with no scheme in URI
        assertXQuery("this is a test", "doc('/test.xml')/string()");
        // find document *with* scheme in URI
        assertXQuery("this is a test", "doc('lux://test.xml')/string()");
        assertXQuery(null, "lux:delete('/test.xml')");
        assertXQuery("true", "doc-available('/test.xml')");
        assertXQuery(null, "lux:commit()");
        evaluator.reopenSearcher(); // need to do this to see the updates
        assertXQuery("false", "doc-available('/test.xml')");
    }

    @Test
    public void deleteAll() throws Exception {
        assertXQuery(null, "lux:insert('/test.xml', <test>this is a test</test>)");
        assertXQuery(null, "lux:commit()");
        evaluator.reopenSearcher(); // need to do this to see the updates
        assertXQuery("this is a test", "doc('/test.xml')/test/string()");

        assertXQuery(null, "lux:delete('lux:/')"); // deletes all documents
        // by calling evaluator.getDocWriter().deleteAll();

        assertXQuery("true", "doc-available('/test.xml')");
        assertXQuery(null, "lux:commit()");
        evaluator.reopenSearcher(); // need to do this to see the updates
        assertXQuery("false", "doc-available('/test.xml')");

    }

}

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */