package com.sap.ide.cts.editor.integration.prettyprint; import static org.junit.Assert.assertNotNull; import java.io.InputStream; import org.junit.Before; import com.sap.furcas.metamodel.TCS.ConcreteSyntax; import com.sap.furcas.metamodel.textblocks.TextBlock; import com.sap.furcas.parsergenerator.tcs.util.TcsUtil; import com.sap.furcas.parsergenerator.textblocks.model.TextBlocksModel; import com.sap.furcas.test.util.TcsTestHelper; import com.sap.ide.cts.editor.contentassist.TcsModelElementFactory; import com.sap.ide.cts.editor.contentassist.TcsModelElementMoinFactory; import com.sap.ide.cts.editor.test.util.FixtureBasedTest; import com.sap.mi.textual.parsing.textblocks.TextblocksTestHelper; public class CtsPrettyPrinterIntegrationTestBase extends FixtureBasedTest { protected String languageName; protected ConcreteSyntax syntax; protected TcsModelElementFactory modelFactory; @Before public void setupModelFactory() { modelFactory = new TcsModelElementMoinFactory(connection); } private String getReferenceOutput(String testCaseName) { InputStream fixtureStream = CtsPrettyPrinterIntegrationTestBase.class .getResourceAsStream("fixtures/" + languageName + "_" + testCaseName + ".out"); return TcsTestHelper.getStreamContents(fixtureStream); } protected void assertOutput(String output, String testCaseName) { TcsTestHelper.assertByLines(output, getReferenceOutput(testCaseName)); } protected void assertOutput(TextBlock rootBlock, String testCaseName) { TextblocksTestHelper.assertTextBlockAndChildren(rootBlock); TextBlocksModel model = new TextBlocksModel(rootBlock, null); String output = model.get(0, rootBlock.getLength()); TcsTestHelper.assertByLines(output, getReferenceOutput(testCaseName)); } protected void initSyntax(String languageName) { // assumes that mapping exists in fixtures assertNotNull(connection); this.languageName = languageName; syntax = TcsUtil.getSyntaxByName(connection, languageName); assertNotNull(syntax); } }