1 /* Version 1.0 based on Apache Software License 1.1 2 * 3 * Copyright (c) 2003 Piotr Maj and DBMonster developers. All rights 4 * reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: 9 * 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * 3. The end-user documentation included with the redistribution, if any, 18 * must include the following acknowledgment: 19 * 20 * "This product includes software developed by DBMonster developers 21 * (http://dbmonster.kernelpanic.pl/)." 22 * 23 * Alternately, this acknowledgment may appear in the software itself, 24 * if and wherever such third-party acknowledgments normally appear. 25 * 26 * 4. The name "DBMonster" must not be used to endorse or promote products 27 * derived from this software without prior written permission. For 28 * written permission, please contact piotr.maj@kernelpanic.pl. 29 * 30 * 5. Products derived from this software may not be called "DBMonster", 31 * nor may "DBMonster" appear in their name, without prior written 32 * permission of Piotr Maj. 33 * 34 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED 35 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 36 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 37 * IN NO EVENT SHALL THE DBMONSTER DEVELOPERS BE LIABLE FOR ANY DIRECT, 38 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 39 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 40 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 41 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 42 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 43 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 44 * POSSIBILITY OF SUCH DAMAGE. 45 */ 46 47 package pl.kernelpanic.dbmonster.test; 48 49 import java.io.File; 50 import java.io.FileWriter; 51 52 import junit.framework.TestCase; 53 54 import org.apache.commons.logging.Log; 55 import org.apache.commons.logging.LogFactory; 56 57 import pl.kernelpanic.dbmonster.schema.Schema; 58 import pl.kernelpanic.dbmonster.schema.SchemaUtil; 59 60 /*** 61 * SchemaUtil test. 62 * 63 * @author Piotr Maj <piotr.maj@kernelpanic.pl> 64 * 65 * @version $Id: SchemaUtilTest.html,v 1.1 2007/06/21 08:38:14 sbahloul Exp $ 66 */ 67 public class SchemaUtilTest extends TestCase { 68 69 private Log log = LogFactory.getLog(SchemaUtilTest.class); 70 71 public final void testFile() throws Exception { 72 Schema schema = null; 73 try { 74 schema = SchemaUtil.loadSchema("src/examples/dbmonster-schema.xml", log); 75 } catch (Exception e) { 76 System.out.println(e.getMessage()); 77 throw e; 78 } 79 assertNotNull(schema); 80 } 81 82 public final void testURL() throws Exception { 83 Schema schema = null; 84 try { 85 String url = "/pl/kernelpanic/dbmonster/test/resources/dbmonster-schema.xml"; 86 schema = SchemaUtil.loadSchema(getClass().getResource(url), log); 87 } catch (Exception e) { 88 System.out.println(e.getMessage()); 89 throw e; 90 } 91 assertNotNull(schema); 92 } 93 94 public final void testSerializer() throws Exception { 95 Schema schema = null; 96 try { 97 String url = "/pl/kernelpanic/dbmonster/test/resources/dbmonster-schema.xml"; 98 schema = SchemaUtil.loadSchema(getClass().getResource(url), log); 99 File f = new File("target/schema-out.xml"); 100 FileWriter fw = new FileWriter(f); 101 SchemaUtil.serializeSchema(fw, schema); 102 schema = null; 103 schema = SchemaUtil.loadSchema(f.getPath(), log); 104 } catch (Exception e) { 105 System.out.println(e.getMessage()); 106 throw e; 107 } 108 assertNotNull(schema); 109 } 110 }