vgritsenko 2003/12/24 07:18:40
Added: java/tests/src/org/apache/xindice/core CollectionTest.java Removed: java/tests/src/org/apache/xindice/client/xmldb/resources BinaryResourceTest.java XMLResourceTest.java Log: Add Core API tests for Binary and Document Revision Changes Path 1.1 xml-xindice/java/tests/src/org/apache/xindice/core/CollectionTest.java Index: CollectionTest.java =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xindice" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999-2001, The dbXML * Group, L.L.C., http://www.dbxmlgroup.com. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * * CVS $Id: CollectionTest.java,v 1.1 2003/12/24 15:18:40 vgritsenko Exp $ */ package org.apache.xindice.core; import org.apache.xindice.util.Configuration; import org.apache.xindice.xml.TextWriter; import org.apache.xindice.xml.dom.DOMParser; import junit.framework.TestCase; import org.w3c.dom.Document; /** * Tests Xindice Core API (org.apache.xindice.core.Database, * org.apache.xindice.core.Collection) * * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a> * @version CVS $Revision: 1.1 $, $Date: 2003/12/24 15:18:40 $ */ public class CollectionTest extends TestCase { private Database db; private Collection collection; public CollectionTest(String name) { super(name); } public void setUp() throws Exception { String name = getClass().getName(); db = new Database(); db.setConfig(new Configuration(DOMParser.toDocument(DatabaseTest.DATABASE))); collection = db.createCollection(name, new Configuration( DOMParser.toDocument( "<collection compressed=\"true\" name=\"" + name + "\" inline-metadata=\"true\">" + "<filer class=\"org.apache.xindice.core.filer.BTreeFiler\" gzip=\"true\"/>" + "</collection>"), false )); } public void tearDown() throws Exception { db.dropCollection(collection); db.close(); } /** * Tests insertBinary, getBinary, remove */ public void testBinary() throws Exception { byte[] in = new byte[256]; for (int i = 0; i < in.length; i++) { in[i] = (byte) (Math.random() * 256); } collection.insertBinary("binary", in); byte[] out = collection.getBinary("binary"); assertNotNull("Binary must be in there", out); assertEquals("The size of the found and saved binary should be the same", in.length, out.length); for (int i = 0; i < in.length; ++i) { assertEquals("The resources differ in byte " + i, in[i], out[i]); } collection.remove("binary"); out = collection.getBinary("binary"); assertNull("Binary should have been removed", out); } /** * Tests insertDocument, getDocument, remove */ public void testDocument() throws Exception { Document in = collection.getConfig().getElement().getOwnerDocument(); String inStr = TextWriter.toString(in); collection.insertDocument("document", in); Document out = collection.getDocument("document"); assertNotNull("Document must be in there", out); String outStr = TextWriter.toString(out); assertEquals("Documents do not match", inStr, outStr); collection.remove("document"); out = collection.getDocument("document"); assertNull("Document should have been removed", out); } }