/** * 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.util; import junit.framework.TestCase; public class CharIteratorTest extends TestCase { public void testRemove() throws Exception { CharIterator it = new CharIterator("1234"); it.next(); it.remove(); assertEquals(-1, it.currentIndex()); assertTrue(it.hasNext()); it.next(); assertTrue(it.is('2')); assertEquals("234", it.toString()); it.next(); assertTrue(it.hasNext()); it.next(); assertFalse(it.hasNext()); } public void testSimpleIteration() throws Exception { CharIterator c = new CharIterator("Hi there Kasper Sørensen"); assertTrue(c.hasNext()); assertFalse(c.hasPrevious()); // H c.next(); assertTrue(c.isLetter()); assertTrue(c.isUpperCase()); assertFalse(c.isDiacritic()); assertFalse(c.isWhitespace()); assertTrue(c.hasNext()); assertFalse(c.hasPrevious()); // i c.next(); assertTrue(c.isLetter()); assertTrue(c.isLowerCase()); assertFalse(c.isDiacritic()); assertFalse(c.isWhitespace()); assertTrue(c.hasNext()); assertTrue(c.hasPrevious()); // (space) c.next(); assertFalse(c.isLetter()); assertFalse(c.isLowerCase()); assertFalse(c.isDiacritic()); assertTrue(c.isWhitespace()); assertTrue(c.hasNext()); assertTrue(c.hasPrevious()); // there c.next(); c.next(); c.next(); c.next(); c.next(); assertTrue(c.is('e')); // (space) c.next(); assertFalse(c.isLetter()); assertFalse(c.isLowerCase()); assertFalse(c.isDiacritic()); assertTrue(c.isWhitespace()); assertTrue(c.hasNext()); assertTrue(c.hasPrevious()); // Kasper c.next(); assertTrue(c.isUpperCase()); c.next(); c.next(); c.next(); c.next(); c.next(); assertTrue(c.is('r')); // (space) c.next(); assertFalse(c.isLetter()); assertFalse(c.isLowerCase()); assertFalse(c.isDiacritic()); assertTrue(c.isWhitespace()); assertTrue(c.hasNext()); assertTrue(c.hasPrevious()); // S c.next(); assertTrue(c.isLetter()); assertFalse(c.isLowerCase()); assertTrue(c.isUpperCase()); assertFalse(c.isDiacritic()); assertFalse(c.isWhitespace()); assertTrue(c.hasNext()); assertTrue(c.hasPrevious()); // ø c.next(); assertTrue(c.isLetter()); assertTrue(c.isLowerCase()); assertFalse(c.isUpperCase()); assertTrue(c.isDiacritic()); assertFalse(c.isWhitespace()); assertTrue(c.hasNext()); assertTrue(c.hasPrevious()); // rense c.next(); c.next(); c.next(); c.next(); assertTrue(c.is('s')); c.next(); assertTrue(c.is('e')); assertTrue(c.hasNext()); assertTrue(c.hasPrevious()); c.next(); assertTrue(c.is('n')); assertFalse(c.hasNext()); assertTrue(c.hasPrevious()); } public void testDigits() throws Exception { CharIterator c = new CharIterator("a1b2"); c.next(); assertTrue(c.isLetter()); c.next(); assertTrue(c.isDigit()); c.next(); assertTrue(c.isLetter()); c.next(); assertTrue(c.isDigit()); assertFalse(c.hasNext()); } public void testFirstAndLast() throws Exception { CharIterator c = new CharIterator("1234"); assertEquals('1', c.first().charValue()); assertEquals('4', c.last().charValue()); } public void testEmptyString() throws Exception { CharIterator c = new CharIterator(""); assertFalse(c.hasNext()); } public void testNull() throws Exception { CharIterator c = new CharIterator((CharSequence) null); assertFalse(c.hasNext()); c = new CharIterator((char[]) null); assertFalse(c.hasNext()); } public void testSubIterator() throws Exception { CharIterator c = new CharIterator("hello world"); assertEquals("hello world", c.toString()); assertEquals("world", c.subIterator(6, 11).toString()); c = c.subIterator(2, 4); assertEquals("ll", c.toString()); } }