package com.googlecode.totallylazy.parser;
import com.googlecode.totallylazy.Segment;
import org.junit.Test;
import static com.googlecode.totallylazy.Characters.alphaNumeric;
import static com.googlecode.totallylazy.Segment.constructors.emptySegment;
import static com.googlecode.totallylazy.matchers.Matchers.is;
import static com.googlecode.totallylazy.parser.CharactersParser.characters;
import static org.hamcrest.MatcherAssert.assertThat;
public class CharactersParserTest {
@Test
public void parsesMultipleCharacters() throws Exception {
Result<CharSequence> result = characters(alphaNumeric).parse("ABC");
assertThat(result.value().toString(), is("ABC"));
assertThat(result.remainder(), is(emptySegment(Character.class)));
}
@Test
public void leavesRemainder() throws Exception {
Result<CharSequence> result = characters(alphaNumeric).parse("ABC+");
assertThat(result.value().toString(), is("ABC"));
assertThat(result.remainder(), is(Segment.constructors.characters("+")));
}
@Test
public void matchIsRequired() throws Exception {
assertThat(characters(alphaNumeric).parse("+").failure(), is(true));
assertThat(characters(alphaNumeric).parse("").failure(), is(true));
}
}