/**
*
*/
package com.sap.furcas.parsergenerator.tcs.injection;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Set;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.ResourceSet;
import com.sap.furcas.metamodel.FURCAS.TCS.ConcreteSyntax;
import com.sap.furcas.parsergenerator.emf.tcs.inject.TCSSpecificEMFModelInjector;
import com.sap.furcas.runtime.common.exceptions.MetaModelLookupException;
import com.sap.furcas.runtime.common.util.FileResourceHelper;
import com.sap.furcas.runtime.parser.ModelParsingResult;
import com.sap.furcas.runtime.parser.exceptions.InvalidParserImplementationException;
import com.sap.furcas.runtime.parser.exceptions.UnknownProductionRuleException;
import com.sap.furcas.test.testutils.ResourceTestHelper;
/**
* Base class for syntax injection tests
*/
public abstract class AbstractTCSInjectionTest {
// The set of EMF objects returned from parsing to EMF model
protected static ConcreteSyntax syntax;
protected static ModelParsingResult modelParsingResult;
protected static void setup(File tcs, File... metamodel) throws InvalidParserImplementationException, IOException, UnknownProductionRuleException, MetaModelLookupException {
ResourceSet resourceSet = FileResourceHelper.loadResourceSet(metamodel);
Set<URI> referenceScope = ResourceTestHelper.createEcoreReferenceScope();
modelParsingResult = TCSSpecificEMFModelInjector.parseSyntaxDefinition(new FileInputStream(tcs),
resourceSet, referenceScope, /*observer*/ null);
syntax = (ConcreteSyntax) modelParsingResult.getParsedModelElement();
}
protected void parseInputStream(InputStream in) throws InvalidParserImplementationException, IOException, UnknownProductionRuleException {
ResourceSet resourceSet = ResourceTestHelper.createResourceSet();
Set<URI> referenceScope = ResourceTestHelper.createFURCASReferenceScope();
modelParsingResult = TCSSpecificEMFModelInjector.parseSyntaxDefinition(in,
resourceSet, referenceScope, /*observer*/ null);
}
}