class TokenStream {

    public String consume() throws ParsingException, IllegalStateException {
        if (completed) {
            throwNoMoreContent();
        }
        // Get the value from the current token ...
        String result = currentToken().value();
        moveToNextToken();
        return result;
    }

}

class TokenStreamTest {

    public static final int WORD;
    public static final int SYMBOL;
    public static final int DECIMAL;
    public static final int SINGLE_QUOTED_STRING;
    public static final int DOUBLE_QUOTED_STRING;
    public static final int COMMENT;
    private Tokenizer tokenizer;
    private String content;
    private TokenStream tokens;

    @Test(expected = ParsingException.class)
    public void shouldFailToConsumeInCaseSensitiveMannerWithExpectedValuesWhenMatchingIncorrectCase() {

        makeCaseSensitive();
        tokens.consume("Select");
        tokens.consume("all");
        tokens.consume("Columns");
    }

}