/** * AnalyzerBeans * Copyright (C) 2014 Neopost - Customer Information Management * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program 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. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA */ package org.eobjects.analyzer.beans.stringpattern; import junit.framework.TestCase; public class TokenPatternSymbolImplTest extends TestCase { private TokenizerConfiguration configuration = new TokenizerConfiguration(true, '.', ',', '-'); public void testMatchText() throws Exception { configuration.setDiscriminateTextCase(false); configuration.setDistriminateTokenLength(TokenType.TEXT, true); TokenPatternSymbol t1 = new TokenPatternSymbolImpl(new SimpleToken(TokenType.TEXT, "hello"), configuration); SimpleToken t2; t2 = new SimpleToken(TokenType.TEXT, "WORLD"); assertTrue(t1.matches(t2, configuration)); t2 = new SimpleToken(TokenType.TEXT, "hi"); assertFalse(t1.matches(t2, configuration)); configuration.setDistriminateTokenLength(TokenType.TEXT, false); assertTrue(t1.matches(t2, configuration)); configuration.setDiscriminateTextCase(true); t2 = new SimpleToken(TokenType.TEXT, "WORLD"); assertFalse(t1.matches(t2, configuration)); } public void testMatchNumber() throws Exception { configuration.setDiscriminateDecimalNumbers(true); configuration.setDiscriminateNegativeNumbers(true); TokenPatternSymbol t1 = new TokenPatternSymbolImpl(new SimpleToken(TokenType.NUMBER, "123"), configuration); SimpleToken t2; t2 = new SimpleToken(TokenType.NUMBER, "45678"); assertTrue(t1.matches(t2, configuration)); t2 = new SimpleToken(TokenType.NUMBER, "-45678"); assertFalse(t1.matches(t2, configuration)); t2 = new SimpleToken(TokenType.NUMBER, "45678.2"); assertFalse(t1.matches(t2, configuration)); configuration.setDiscriminateDecimalNumbers(false); assertTrue(t1.matches(t2, configuration)); t2 = new SimpleToken(TokenType.NUMBER, "-45678"); assertFalse(t1.matches(t2, configuration)); configuration.setDiscriminateNegativeNumbers(false); assertTrue(t1.matches(t2, configuration)); t2 = new SimpleToken(TokenType.NUMBER, "-45.678.4324"); assertTrue(t1.matches(t2, configuration)); } public void testMatchDifferentTypes() throws Exception { TokenPatternSymbol t1 = new TokenPatternSymbolImpl(new SimpleToken(TokenType.TEXT, "hello"), configuration); SimpleToken t2 = new SimpleToken(TokenType.NUMBER, "123"); assertFalse(t1.matches(t2, null)); } public void testMatchDelim() throws Exception { TokenPatternSymbol t1 = new TokenPatternSymbolImpl(new SimpleToken(TokenType.DELIM, ",-"), configuration); SimpleToken t2; t2 = new SimpleToken(TokenType.DELIM, ",-"); assertTrue(t1.matches(t2, configuration)); t2 = new SimpleToken(TokenType.DELIM, "-,"); assertFalse(t1.matches(t2, configuration)); } public void testMixedTypeSymbolicString() throws Exception { TokenPatternSymbolImpl t1 = new TokenPatternSymbolImpl(new SimpleToken(TokenType.MIXED, "foo123"), configuration); assertEquals("??????", t1.toSymbolicString()); assertTrue(t1.matches(new SimpleToken(TokenType.MIXED, "bar12"), configuration)); assertTrue(t1.matches(new SimpleToken(TokenType.MIXED, "ab1234"), configuration)); } }