package com.sap.furcas.ide.editor.contentassist.parsinghandler; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; import org.junit.Before; import org.junit.Test; import com.sap.furcas.ide.editor.contentassist.CtsContentAssistContext; import com.sap.furcas.metamodel.FURCAS.TCS.LiteralRef; import com.sap.furcas.metamodel.FURCAS.TCS.Property; import com.sap.furcas.runtime.parser.exceptions.InvalidParserImplementationException; import com.sap.furcas.runtime.parser.exceptions.UnknownProductionRuleException; public class TestCtsContentAssistParsingHandlerSequence extends CtsContentAssistParsingHandlerTestBase { @Before public void initObserver() throws InvalidParserImplementationException, IOException, UnknownProductionRuleException { observeFixture("fixtures/Sequence.tcs"); } @Test public void testValidFinishState() { observer.assertValidFinishState(); }; @Test public void testParentPropertyStackSize() { CtsContentAssistContext context; context = observer.getFloorContext(1, 0); assertEquals(0, context.getParentPropertyStack().size()); context = observer.getFloorContext(2, 0); assertEquals(0, context.getParentPropertyStack().size()); // templates context = observer.getFloorContext(2, 1); assertEquals(1, context.getParentPropertyStack().size()); // templates and names context = observer.getFloorContext(2, 14); assertEquals(2, context.getParentPropertyStack().size()); // templates and names context = observer.getFloorContext(2, 18); assertEquals(2, context.getParentPropertyStack().size()); // templates and names context = observer.getFloorContext(2, 24); assertEquals(2, context.getParentPropertyStack().size()); // templates and elements context = observer.getFloorContext(3, 24); assertEquals(3, context.getParentPropertyStack().size()); // templates context = observer.getFloorContext(5, 0); assertEquals(1, context.getParentPropertyStack().size()); context = observer.getFloorContext(6, 0); assertEquals(0, context.getParentPropertyStack().size()); } @Test public void testSequenceElements() { CtsContentAssistContext context; // property names context = observer.getFloorContext(2, 14); assertTrue(context.getSequenceElement() instanceof Property); // literal ref :: context = observer.getFloorContext(2, 18); assertTrue(context.getSequenceElement() instanceof LiteralRef); // property names context = observer.getFloorContext(2, 24); assertTrue(context.getSequenceElement() instanceof Property); } }