/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2004-2008, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.validation.xml; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.net.URI; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import org.geotools.validation.dto.PlugInDTO; import org.geotools.validation.dto.TestDTO; import org.geotools.validation.dto.TestSuiteDTO; /** * XMLReaderTest purpose. * * <p> * Description of XMLReaderTest ... * </p> * * <p> * Capabilities: * </p> * * <ul> * <li> * Feature: description * </li> * </ul> * * <p> * Example Use: * </p> * <pre><code> * XMLReaderTest x = new XMLReaderTest(...); * </code></pre> * * @author dzwiers, Refractions Research, Inc. * @author $Author: sploreg $ (last modification) * * @source $URL$ * @version $Id$ */ public class XMLReaderTest extends TestCase { public XMLReaderTest() { super("XMLReaderTest"); } public XMLReaderTest(String s) { super(s); } protected FileReader features() throws FileNotFoundException{ File file = new File( "C:/Java/workspace/geoserver/conf/plugins/Constraint.xml" ); if( !file.exists() ){ return null; } return new FileReader( file ); } public void testReadPlugIn() { try { FileReader fr = features(); if( fr == null ) return; PlugInDTO dto = XMLReader.readPlugIn(fr); assertNotNull("Error if null", dto); assertTrue("Name read", "Constraint".equals(dto.getName())); assertTrue("Description read", "All features must pass the provided filter".equals( dto.getDescription())); assertTrue("ClassName read", "org.geoserver.validation.plugins.filter.OGCFilter".equals( dto.getClassName())); assertNotNull("Should be one arg.", dto.getArgs()); assertTrue("Should be one arg.", dto.getArgs().size() == 1); assertTrue("Arg. name", dto.getArgs().containsKey("tempDirectory")); assertTrue("Arg. value : " + dto.getArgs().get("tempDirectory"), dto.getArgs().containsValue(new URI("file:///c:/temp"))); } catch (Exception e) { fail(e.toString()); } } public void testReadTestSuite() { try { //set-up FileReader fr = features(); if( fr == null ) return; Map m = new HashMap(); PlugInDTO dto = XMLReader.readPlugIn(fr); m.put(dto.getName(), dto); fr = new FileReader( "C:/Java/workspace/geoserver/conf/plugins/NameInList.xml"); dto = XMLReader.readPlugIn(fr); m.put(dto.getName(), dto); fr = new FileReader( "C:/Java/workspace/geoserver/conf/validation/RoadTestSuite.xml"); TestSuiteDTO testsuite = XMLReader.readTestSuite("test", fr, m); assertTrue("TestSuite Name read", "RoadTestSuite".equals(testsuite.getName())); // multi line so cannot effectively test /*assertTrue("TestSuite Description read",("This test suite checks each road name to see \n"+ "that they are of appropriate length and checks to \n"+ "see if they are on the list of possible road names.\n"+ "It also checks to see if any roads are contained in\n"+ "a specified box.").equals(testsuite.getDescription()));*/ TestDTO test = (TestDTO) testsuite.getTests().get("NameLookup"); assertNotNull("NameLookup does not exist as a test",test); // multi line so cannot effectively test // assertTrue("Test Description read","Checks to see if the road name is in the list of possible names.".equals(test.getDescription())); assertNotNull("Should not be null", test.getPlugIn()); assertTrue("Test plugInName read", "NameInList".equals(test.getPlugIn().getName())); assertNotNull("Should be one arg.", test.getArgs()); assertTrue("Should be one arg.", test.getArgs().size() == 2); assertTrue("Arg. name", test.getArgs().containsKey("LUTName")); // multi line so cannot effectively test //assertTrue("Arg. value : "+test.getArgs().get("LUTName"),test.getArgs().containsValue("RoadNameLUT.xls")); } catch (Exception e) { e.printStackTrace(); fail(e.toString()); } } }