package org.quaere;
import org.junit.Test;
import org.junit.Assert;
import org.quaere.CharacterRange;
import java.util.Iterator;
public class CharacterRangeTest {
@Test
public void canCreateRange()
{
CharacterRange abcdef=new CharacterRange('A','F');
Iterator<Character> iter=abcdef.iterator();
Assert.assertEquals('A',iter.next());
Assert.assertEquals('B',iter.next());
Assert.assertEquals('C',iter.next());
Assert.assertEquals('D',iter.next());
Assert.assertEquals('E',iter.next());
Assert.assertEquals('F',iter.next());
Assert.assertFalse(iter.hasNext());
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void arrayIndexOutOfBoundsExceptionIsThrownWhenIteratorPassesEndOfRange() {
CharacterRange ab=new CharacterRange('A','B');
Iterator<Character> riter = ab.iterator();
riter.next();
riter.next();
riter.next();
}
@Test
public void canCreateReversedRange() {
CharacterRange fedcba=new CharacterRange('f','a');
Iterator<Character> iter=fedcba.iterator();
Assert.assertEquals('f',iter.next());
Assert.assertEquals('e',iter.next());
Assert.assertEquals('d',iter.next());
Assert.assertEquals('c',iter.next());
Assert.assertEquals('b',iter.next());
Assert.assertEquals('a',iter.next());
Assert.assertFalse(iter.hasNext());
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void arrayIndexOutOfBoundsExceptionIsThrownWhenIteratorPassesBeginningOfReversedRange() {
CharacterRange ba=new CharacterRange('B','A');
Iterator<Character> riter = ba.iterator();
riter.next();
riter.next();
riter.next();
}}