// Path: src/main/java/xdb/control/Query.java
// public interface Query {
// 
//     /**
//      * Execute the query.
//      * 
//      * @param doc
//      *            The document being queried.
//      * @param params
//      *            Query parameters.
//      * @return The list of nodes in the results.
//      * @throws xdb.control.QueryException
//      *             For errors.
//      */
//     public List<Node> query(Document doc, Map<String, String[]> params) throws QueryException;
// }
// 
// Path: src/main/java/xdb/query/QueryInit.java
// public final class QueryInit {
// 
//     private QueryInit() {
//     }
// 
//     /**
//      * Init the query from its configuration.
//      * 
//      * @param configElement
//      *            The configuration element.
//      * @param fileName
//      *            The file name.
//      * @return The query.
//      */
//     public static Query init(Element configElement, String fileName) {
//         if ("xpath-query".equals(configElement.getNodeName())) {
//             return XPathQuery.init(configElement);
//         } else if ("multi-id-query".equals(configElement.getNodeName())) {
//             return MultiIdQuery.init(configElement);
//         } else if ("multi-key-query".equals(configElement.getNodeName())) {
//             return MultiKeyQuery.init(configElement);
//         } else if ("whole-doc-query".equals(configElement.getNodeName())) {
//             return WholeDocQuery.init(configElement);
//         } else {
//             String msg = "Unknown query in " + fileName + " - " + configElement.getNodeName();
//             throw new IllegalStateException(msg);
//         }
//     }
// }
// 
// Path: src/main/java/xdb/query/WholeDocQuery.java
// public class WholeDocQuery implements Query {
// 
//     /**
//      * Init the query from its configuration.
//      * 
//      * @param configElement
//      *            The configuration element.
//      * @return The query.
//      */
//     public static WholeDocQuery init(Element configElement) {
//         return new WholeDocQuery();
//     }
// 
//     /** Constructor. */
//     public WholeDocQuery() {
//     }
// 
//     @Override
//     public List<Node> query(Document doc, Map<String, String[]> params) throws QueryException {
//         return Collections.singletonList((Node) doc);
//     }
// }
// 
// Path: src/test/java/xdb/test/TestUtil.java
// public class TestUtil {
// 
//     public static Document parse(String xml) throws Exception {
//         StringReader reader = new StringReader(xml);
//         InputSource is = new InputSource(reader);
//         return new XmlParser().parse(is);
//     }
// }


import java.util.Collections;
import java.util.List;
import junit.framework.TestCase;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import xdb.control.Query;
import xdb.query.QueryInit;
import xdb.query.WholeDocQuery;
import xdb.test.TestUtil;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package xdb.query;



/**
 * 
 * @author ps142237
 */
public class WholeDocQueryTest extends TestCase {

    public WholeDocQueryTest(String testName) {
        super(testName);
    }

    public void testInit() throws Exception {
        String xml = "<whole-doc-query />";
        Element config = TestUtil.parse(xml).getDocumentElement();
// Path: src/main/java/xdb/control/Query.java
// public interface Query {
// 
//     /**
//      * Execute the query.
//      * 
//      * @param doc
//      *            The document being queried.
//      * @param params
//      *            Query parameters.
//      * @return The list of nodes in the results.
//      * @throws xdb.control.QueryException
//      *             For errors.
//      */
//     public List<Node> query(Document doc, Map<String, String[]> params) throws QueryException;
// }
// 
// Path: src/main/java/xdb/query/QueryInit.java
// public final class QueryInit {
// 
//     private QueryInit() {
//     }
// 
//     /**
//      * Init the query from its configuration.
//      * 
//      * @param configElement
//      *            The configuration element.
//      * @param fileName
//      *            The file name.
//      * @return The query.
//      */
//     public static Query init(Element configElement, String fileName) {
//         if ("xpath-query".equals(configElement.getNodeName())) {
//             return XPathQuery.init(configElement);
//         } else if ("multi-id-query".equals(configElement.getNodeName())) {
//             return MultiIdQuery.init(configElement);
//         } else if ("multi-key-query".equals(configElement.getNodeName())) {
//             return MultiKeyQuery.init(configElement);
//         } else if ("whole-doc-query".equals(configElement.getNodeName())) {
//             return WholeDocQuery.init(configElement);
//         } else {
//             String msg = "Unknown query in " + fileName + " - " + configElement.getNodeName();
//             throw new IllegalStateException(msg);
//         }
//     }
// }
// 
// Path: src/main/java/xdb/query/WholeDocQuery.java
// public class WholeDocQuery implements Query {
// 
//     /**
//      * Init the query from its configuration.
//      * 
//      * @param configElement
//      *            The configuration element.
//      * @return The query.
//      */
//     public static WholeDocQuery init(Element configElement) {
//         return new WholeDocQuery();
//     }
// 
//     /** Constructor. */
//     public WholeDocQuery() {
//     }
// 
//     @Override
//     public List<Node> query(Document doc, Map<String, String[]> params) throws QueryException {
//         return Collections.singletonList((Node) doc);
//     }
// }
// 
// Path: src/test/java/xdb/test/TestUtil.java
// public class TestUtil {
// 
//     public static Document parse(String xml) throws Exception {
//         StringReader reader = new StringReader(xml);
//         InputSource is = new InputSource(reader);
//         return new XmlParser().parse(is);
//     }
// }


// Path: src/test/java/xdb/query/WholeDocQueryTest.java
import java.util.Collections;
import java.util.List;
import junit.framework.TestCase;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import xdb.control.Query;
import xdb.query.QueryInit;
import xdb.query.WholeDocQuery;
import xdb.test.TestUtil;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package xdb.query;



/**
 * 
 * @author ps142237
 */
public class WholeDocQueryTest extends TestCase {

    public WholeDocQueryTest(String testName) {
        super(testName);
    }

    public void testInit() throws Exception {
        String xml = "<whole-doc-query />";
        Element config = TestUtil.parse(xml).getDocumentElement();
        Query instance = QueryInit.init(config, "test-config.xml");