package com.sap.furcas.runtime.textblocks.model;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import com.sap.furcas.metamodel.FURCAS.textblocks.Bostoken;
import com.sap.furcas.metamodel.FURCAS.textblocks.Eostoken;
import com.sap.furcas.metamodel.FURCAS.textblocks.LexedToken;
import com.sap.furcas.metamodel.FURCAS.textblocks.OmittedToken;
import com.sap.furcas.metamodel.FURCAS.textblocks.TextBlock;
import com.sap.furcas.metamodel.FURCAS.textblocks.TextblocksFactory;
import com.sap.furcas.metamodel.FURCAS.textblocks.Version;
public class TestTextBlocksModelManual {
private TextBlock rootBlock;
@Before
public void setUpTree() throws Exception {
initTree();
}
private void initTree() {
rootBlock = TextblocksFactory.eINSTANCE.createTextBlock();
rootBlock.setChildrenChanged(false);
rootBlock.setVersion(Version.REFERENCE);
rootBlock.setRelexingNeeded(false);
rootBlock.setOffset(0);
rootBlock.setLength(11);
rootBlock.setOffsetRelative(true);
//rootBlock.setComplete(false);
rootBlock.setCachedString("abc - d*ee;\n");
Bostoken bosToken = TextblocksFactory.eINSTANCE.createBostoken();
bosToken.setChildrenChanged(false);
bosToken.setVersion(Version.REFERENCE);
bosToken.setRelexingNeeded(false);
bosToken.setOffset(0);
bosToken.setLength(0);
bosToken.setOffsetRelative(true);
bosToken.setValue("");
bosToken.setLookahead(0);
bosToken.setLookback(0);
bosToken.setState(0);
//bosToken.setType(0);
rootBlock.getSubNodes().add(bosToken);
LexedToken lexedToken = TextblocksFactory.eINSTANCE.createLexedToken();
lexedToken.setChildrenChanged(false);
lexedToken.setVersion(Version.REFERENCE);
lexedToken.setRelexingNeeded(false);
lexedToken.setOffset(0);
lexedToken.setLength(3);
lexedToken.setOffsetRelative(true);
lexedToken.setValue("abc");
lexedToken.setLookahead(0);
lexedToken.setLookback(0);
lexedToken.setState(0);
lexedToken.setType(0);
rootBlock.getSubNodes().add(lexedToken);
OmittedToken omittedToken = TextblocksFactory.eINSTANCE.createOmittedToken();
omittedToken.setChildrenChanged(false);
omittedToken.setVersion(Version.REFERENCE);
omittedToken.setRelexingNeeded(false);
omittedToken.setOffset(3);
omittedToken.setLength(1);
omittedToken.setOffsetRelative(true);
omittedToken.setValue(" ");
omittedToken.setLookahead(0);
omittedToken.setLookback(0);
omittedToken.setState(0);
//omittedToken.setType(0);
rootBlock.getSubNodes().add(omittedToken);
lexedToken = TextblocksFactory.eINSTANCE.createLexedToken();
lexedToken.setChildrenChanged(false);
lexedToken.setVersion(Version.REFERENCE);
lexedToken.setRelexingNeeded(false);
lexedToken.setOffset(4);
lexedToken.setLength(1);
lexedToken.setOffsetRelative(true);
lexedToken.setValue("-");
lexedToken.setLookahead(0);
lexedToken.setLookback(0);
lexedToken.setState(0);
lexedToken.setType(0);
rootBlock.getSubNodes().add(lexedToken);
omittedToken = TextblocksFactory.eINSTANCE.createOmittedToken();
omittedToken.setChildrenChanged(false);
omittedToken.setVersion(Version.REFERENCE);
omittedToken.setRelexingNeeded(false);
omittedToken.setOffset(5);
omittedToken.setLength(1);
omittedToken.setOffsetRelative(true);
omittedToken.setValue(" ");
omittedToken.setLookahead(0);
omittedToken.setLookback(0);
omittedToken.setState(0);
//omittedToken.setType(0);
rootBlock.getSubNodes().add(omittedToken);
Eostoken eosToken = TextblocksFactory.eINSTANCE.createEostoken();
eosToken.setChildrenChanged(false);
eosToken.setVersion(Version.REFERENCE);
eosToken.setRelexingNeeded(false);
eosToken.setOffset(5);
eosToken.setLength(0);
eosToken.setOffsetRelative(true);
eosToken.setValue("");
eosToken.setLookahead(0);
eosToken.setLookback(0);
eosToken.setState(0);
//eosToken.setType(0);
rootBlock.getSubNodes().add(eosToken);
TextBlock block2 = TextblocksFactory.eINSTANCE.createTextBlock();
block2.setChildrenChanged(false);
block2.setVersion(Version.REFERENCE);
block2.setRelexingNeeded(false);
block2.setOffset(6);
block2.setLength(6);
block2.setOffsetRelative(true);
//block2.setComplete(false);
block2.setCachedString("d*ee;\n");
rootBlock.getSubNodes().add(block2);
lexedToken = TextblocksFactory.eINSTANCE.createLexedToken();
lexedToken.setChildrenChanged(false);
lexedToken.setVersion(Version.REFERENCE);
lexedToken.setRelexingNeeded(false);
lexedToken.setOffset(0);
lexedToken.setLength(1);
lexedToken.setOffsetRelative(true);
lexedToken.setValue("d");
lexedToken.setLookahead(0);
lexedToken.setLookback(0);
lexedToken.setState(0);
lexedToken.setType(0);
block2.getSubNodes().add(lexedToken);
lexedToken = TextblocksFactory.eINSTANCE.createLexedToken();
lexedToken.setChildrenChanged(false);
lexedToken.setVersion(Version.REFERENCE);
lexedToken.setRelexingNeeded(false);
lexedToken.setOffset(1);
lexedToken.setLength(1);
lexedToken.setOffsetRelative(true);
lexedToken.setValue("*");
lexedToken.setLookahead(0);
lexedToken.setLookback(0);
lexedToken.setState(0);
lexedToken.setType(0);
block2.getSubNodes().add(lexedToken);
lexedToken = TextblocksFactory.eINSTANCE.createLexedToken();
lexedToken.setChildrenChanged(false);
lexedToken.setVersion(Version.REFERENCE);
lexedToken.setRelexingNeeded(false);
lexedToken.setOffset(2);
lexedToken.setLength(2);
lexedToken.setOffsetRelative(true);
lexedToken.setValue("ee");
lexedToken.setLookahead(0);
lexedToken.setLookback(0);
lexedToken.setState(0);
lexedToken.setType(0);
block2.getSubNodes().add(lexedToken);
lexedToken = TextblocksFactory.eINSTANCE.createLexedToken();
lexedToken.setChildrenChanged(false);
lexedToken.setVersion(Version.REFERENCE);
lexedToken.setRelexingNeeded(false);
lexedToken.setOffset(4);
lexedToken.setLength(1);
lexedToken.setOffsetRelative(true);
lexedToken.setValue(";");
lexedToken.setLookahead(0);
lexedToken.setLookback(0);
lexedToken.setState(0);
lexedToken.setType(0);
block2.getSubNodes().add(lexedToken);
lexedToken = TextblocksFactory.eINSTANCE.createLexedToken();
lexedToken.setChildrenChanged(false);
lexedToken.setVersion(Version.REFERENCE);
lexedToken.setRelexingNeeded(false);
lexedToken.setOffset(5);
lexedToken.setLength(1);
lexedToken.setOffsetRelative(true);
lexedToken.setValue("\n");
lexedToken.setLookahead(0);
lexedToken.setLookback(0);
lexedToken.setState(0);
lexedToken.setType(0);
block2.getSubNodes().add(lexedToken);
}
@Test
public void testGetChar() throws Exception {
TextBlocksModel tbModel = new TextBlocksModel(rootBlock);
char c = tbModel.get(8);
assertEquals('e', c);
}
@Test
public void testGetString() throws Exception {
TextBlocksModel tbModel = new TextBlocksModel(rootBlock);
String c = tbModel.get(2, 5);
assertEquals("c - d", c);
}
@Test
public void testReplaceString() throws Exception {
TextBlocksModel tbModel = new TextBlocksModel(rootBlock);
tbModel.replace(2, 0, "c");
String c = tbModel.get(2, 5);
assertEquals("cc - ", c);
}
}