001: //$HeadURL: svn+ssh://mschneider@svn.wald.intevation.org/deegree/base/trunk/resources/eclipse/svn_classfile_header_template.xml $
002: /*---------------- FILE HEADER ------------------------------------------
003: This file is part of deegree.
004: Copyright (C) 2001-2008 by:
005: Department of Geography, University of Bonn
006: http://www.giub.uni-bonn.de/deegree/
007: lat/lon GmbH
008: http://www.lat-lon.de
009:
010: This library is free software; you can redistribute it and/or
011: modify it under the terms of the GNU Lesser General Public
012: License as published by the Free Software Foundation; either
013: version 2.1 of the License, or (at your option) any later version.
014: This library is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: Lesser General Public License for more details.
018: You should have received a copy of the GNU Lesser General Public
019: License along with this library; if not, write to the Free Software
020: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
021: Contact:
022:
023: Andreas Poth
024: lat/lon GmbH
025: Aennchenstr. 19
026: 53177 Bonn
027: Germany
028: E-Mail: poth@lat-lon.de
029:
030: Prof. Dr. Klaus Greve
031: Department of Geography
032: University of Bonn
033: Meckenheimer Allee 166
034: 53115 Bonn
035: Germany
036: E-Mail: greve@giub.uni-bonn.de
037: ---------------------------------------------------------------------------*/
038:
039: package org.deegree.io.datastore.sql.wherebuilder;
040:
041: import junit.framework.TestCase;
042:
043: /**
044: * Test class for SQL generation of some weird combinations of wildCard and escapeChar (in
045: * PropertyIsLike expressions).
046: * <p>
047: * If you think, that the arguments in the assertions may be broken, consider the necessary escaping
048: * for Java as well.
049: *
050: * @author <a href="mailto:schneider@lat-lon.de">Markus Schneider </a>
051: * @author <a href="mailto:buesching@lat-lon.de">Lyn Buesching </a>
052: * @author last edited by: $Author:$
053: *
054: * @version $Revision:$, $Date:$
055: */
056: public class SpecialCharStringTest extends TestCase {
057:
058: public void testFilter1() throws Exception {
059: String wildCard = "*";
060: String singleChar = "#";
061: String escape = "!";
062: String inputString = "*Sartre*";
063: SpecialCharString specialString = new SpecialCharString(
064: inputString, wildCard, singleChar, escape);
065: String output = specialString.toSQLStyle();
066: assertEquals("%Sartre%", output);
067: }
068:
069: public void testFilter2() throws Exception {
070: String wildCard = "%";
071: String singleChar = "_";
072: String escape = "\\";
073: String inputString = "%Sar\\%\\_tre%";
074: SpecialCharString specialString = new SpecialCharString(
075: inputString, wildCard, singleChar, escape);
076: String output = specialString.toSQLStyle();
077: assertEquals("%Sar\\%\\_tre%", output);
078: }
079:
080: public void testFilter3() throws Exception {
081: String wildCard = "?";
082: String singleChar = "_";
083: String escape = "\\";
084: String inputString = "%Sar\\tre_";
085: SpecialCharString specialString = new SpecialCharString(
086: inputString, wildCard, singleChar, escape);
087: String output = specialString.toSQLStyle();
088: assertEquals("\\%Sartre_", output);
089: }
090:
091: public void testFilter4() throws Exception {
092: String wildCard = "%";
093: String singleChar = "*";
094: String escape = "_";
095: String inputString = "*Sartre%";
096: SpecialCharString specialString = new SpecialCharString(
097: inputString, wildCard, singleChar, escape);
098: String output = specialString.toSQLStyle();
099: assertEquals("_Sartre%", output);
100: }
101:
102: public void testFilter5() throws Exception {
103: String wildCard = "?";
104: String singleChar = "*";
105: String escape = "\\";
106: String inputString = "*Paul_Sartre*";
107: SpecialCharString specialString = new SpecialCharString(
108: inputString, wildCard, singleChar, escape);
109: String output = specialString.toSQLStyle();
110: assertEquals("_Paul\\_Sartre_", output);
111: }
112: }
|