/**
*
*/
package com.sap.furcas.parsergenerator.tcs.t2m.grammar;
import static org.junit.Assert.assertEquals;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.junit.BeforeClass;
import org.junit.Test;
import com.sap.furcas.metamodel.FURCAS.TCS.SequenceInAlternative;
import com.sap.furcas.metamodel.FURCAS.TCS.stubs.AlternativeStub;
import com.sap.furcas.metamodel.FURCAS.TCS.stubs.SequenceInAlternativeStub;
import com.sap.furcas.parsergenerator.tcs.t2m.grammar.handlerStub.RuleBodyStringBufferStub;
import com.sap.furcas.runtime.common.exceptions.MetaModelLookupException;
import com.sap.furcas.runtime.parser.exceptions.SyntaxParsingException;
/**
*
*/
public class TestAlternativeHandler {
@BeforeClass
public static void setup() {
ObservationDirectivesHelper.doAddObserverParts = ObservationDirectivesHelper.NONE;
}
/**
* Test method for {@link com.sap.furcas.parsergenerator.tcs.t2m.grammar.AlternativeHandler#addElement(TCS.Alternative, com.sap.furcas.parsergenerator.tcs.t2m.grammar.RuleBodyStringBuffer)}.
* @throws SyntaxParsingException
* @throws MetaModelLookupException
*/
@Test
public void testAddElement() throws Exception {
// Class under test
AlternativeHandler althandler = new AlternativeHandler();
RuleBodyStringBufferStub buf = new RuleBodyStringBufferStub();
AlternativeStub element = new AlternativeStub();
althandler.addElement(element, buf);
assertEquals("", buf.getResult() );
EList<SequenceInAlternative> seqs = new BasicEList<SequenceInAlternative>();
element.sequences = seqs;
althandler.addElement(element, buf);
assertEquals("", buf.getResult() );
}
/**
* Test method for {@link com.sap.furcas.parsergenerator.tcs.t2m.grammar.AlternativeHandler#addElement(TCS.Alternative, com.sap.furcas.parsergenerator.tcs.t2m.grammar.RuleBodyStringBuffer)}.
* @throws SyntaxParsingException
* @throws MetaModelLookupException
*/
@Test
public void testAddElementOne() throws Exception {
// Class under test
AlternativeHandler althandler = new AlternativeHandler();
RuleBodyStringBufferStub buf = new RuleBodyStringBufferStub();
AlternativeStub element = new AlternativeStub();
althandler.addElement(element, buf);
assertEquals("", buf.getResult() );
SequenceInAlternativeStub seq = new SequenceInAlternativeStub();
seq.representation = "Hello";
EList<SequenceInAlternative> seqs = new BasicEList<SequenceInAlternative>();
seqs.add(seq);
element.sequences = seqs;
althandler.addElement(element, buf);
assertEquals("(Hello)", buf.getResult() );
}
/**
* Test method for {@link com.sap.furcas.parsergenerator.tcs.t2m.grammar.AlternativeHandler#addElement(TCS.Alternative, com.sap.furcas.parsergenerator.tcs.t2m.grammar.RuleBodyStringBuffer)}.
* @throws SyntaxParsingException
* @throws MetaModelLookupException
*/
@Test
public void testAddElementTwo() throws Exception {
// Class under test
AlternativeHandler althandler = new AlternativeHandler();
RuleBodyStringBufferStub buf = new RuleBodyStringBufferStub();
AlternativeStub element = new AlternativeStub();
althandler.addElement(element, buf);
assertEquals("", buf.getResult() );
SequenceInAlternativeStub seq = new SequenceInAlternativeStub();
seq.representation = "Hello";
SequenceInAlternativeStub seq2 = new SequenceInAlternativeStub();
seq2.representation = "World";
EList<SequenceInAlternative> seqs = new BasicEList<SequenceInAlternative>();
seqs.add(seq);
seqs.add(seq2);
element.sequences = seqs;
althandler.addElement(element, buf);
assertEquals("(Hello\n |World)", buf.getResult() );
}
/**
* Test method for {@link com.sap.furcas.parsergenerator.tcs.t2m.grammar.AlternativeHandler#addElement(TCS.Alternative, com.sap.furcas.parsergenerator.tcs.t2m.grammar.RuleBodyStringBuffer)}.
* @throws SyntaxParsingException
* @throws MetaModelLookupException
*/
@Test
public void testAddElementTwoWithDisambiguate() throws Exception {
// Class under test
AlternativeHandler althandler = new AlternativeHandler();
RuleBodyStringBufferStub buf = new RuleBodyStringBufferStub();
AlternativeStub element = new AlternativeStub();
althandler.addElement(element, buf);
assertEquals("", buf.getResult() );
SequenceInAlternativeStub seq = new SequenceInAlternativeStub();
seq.representation = "Hello";
seq.setDisambiguate("TEST");
SequenceInAlternativeStub seq2 = new SequenceInAlternativeStub();
seq2.representation = "World";
EList<SequenceInAlternative> seqs = new BasicEList<SequenceInAlternative>();
seqs.add(seq);
seqs.add(seq2);
element.sequences = seqs;
althandler.addElement(element, buf);
assertEquals("((TEST) => Hello\n |World)", buf.getResult() );
}
/**
* Test method for {@link com.sap.furcas.parsergenerator.tcs.t2m.grammar.AlternativeHandler#addElement(TCS.Alternative, com.sap.furcas.parsergenerator.tcs.t2m.grammar.RuleBodyStringBuffer)}.
* @throws SyntaxParsingException
* @throws MetaModelLookupException
*/
@Test
public void testAddElementTwoWithMulti() throws Exception {
// Class under test
AlternativeHandler althandler = new AlternativeHandler();
RuleBodyStringBufferStub buf = new RuleBodyStringBufferStub();
AlternativeStub element = new AlternativeStub();
althandler.addElement(element, buf);
assertEquals("", buf.getResult() );
SequenceInAlternativeStub seq = new SequenceInAlternativeStub();
seq.representation = "Hello";
seq.setDisambiguate("TEST");
SequenceInAlternativeStub seq2 = new SequenceInAlternativeStub();
seq2.representation = "World";
EList<SequenceInAlternative> seqs = new BasicEList<SequenceInAlternative>();
seqs.add(seq);
seqs.add(seq2);
element.sequences = seqs;
element.isMulti = true;
althandler.addElement(element, buf);
assertEquals("((TEST) => Hello\n |World)*", buf.getResult() );
}
}