/**
*
*/
package com.sap.furcas.parsergenerator.utils;
import static com.sap.furcas.test.testutils.StringListHelper.list;
import static org.junit.Assert.assertEquals;
import java.util.Collections;
import org.junit.Test;
import com.sap.furcas.parsergenerator.util.LexerStringMemberExtractor;
import com.sap.furcas.parsergenerator.util.LexerStringMemberExtractor.InvalidLexerStringException;
/**
*
*/
public class TestLexerStringMemberExtractor {
@Test
public void testLexerStringMemberExtractor() throws InvalidLexerStringException {
LexerStringMemberExtractor ext = new LexerStringMemberExtractor("test1@lexer::members [[contenttest]]test2");
assertEquals("test1test2", ext.getCutLexerString());
assertEquals(list("contenttest"), ext.getContentParts());
}
@Test
public void testLexerStringMemberExtractorStart() throws InvalidLexerStringException {
LexerStringMemberExtractor ext = new LexerStringMemberExtractor("test1@lexer::members [[contenttest]]");
assertEquals("test1", ext.getCutLexerString());
assertEquals(list("contenttest"), ext.getContentParts());
}
@Test
public void testLexerStringMemberEnd() throws InvalidLexerStringException {
LexerStringMemberExtractor ext = new LexerStringMemberExtractor("@lexer::members [[contenttest]]test2");
assertEquals("test2", ext.getCutLexerString());
assertEquals(list("contenttest"), ext.getContentParts());
}
@Test
public void testLexerStringMemberNone() throws InvalidLexerStringException {
LexerStringMemberExtractor ext = new LexerStringMemberExtractor("test2");
assertEquals("test2", ext.getCutLexerString());
assertEquals(Collections.EMPTY_LIST, ext.getContentParts());
}
@Test
public void testLexerStringMemberExtractorDouble() throws InvalidLexerStringException {
LexerStringMemberExtractor ext = new LexerStringMemberExtractor("test1@lexer::members [[contenttest]]test2@lexer::members [[contenttest2]]test3");
assertEquals("test1test2test3", ext.getCutLexerString());
assertEquals(list("contenttest", "contenttest2"), ext.getContentParts());
}
@Test (expected=InvalidLexerStringException.class )
public void testLexerStringMemberInvalidbefore() throws InvalidLexerStringException {
new LexerStringMemberExtractor("test1@lexer::members lalala [[contenttest]]test2");
}
@Test (expected=InvalidLexerStringException.class )
public void testLexerStringMemberInvalidBrackets() throws InvalidLexerStringException {
new LexerStringMemberExtractor("test1@lexer::members lalala [[contenttesttest2");
}
@Test (expected=InvalidLexerStringException.class )
public void testLexerStringMemberInvalidBrackets2() throws InvalidLexerStringException {
new LexerStringMemberExtractor("test1@lexer::members lalala content]]testtest2");
}
@Test (expected=InvalidLexerStringException.class )
public void testLexerStringMemberInvalidBrackets3() throws InvalidLexerStringException {
new LexerStringMemberExtractor("test1@lexer::members]][[ lalala contenttesttest2");
}
}