package org.dresdenocl.tools.codegen.declarativ.ocl2sql.test.tests; import static org.junit.Assert.fail; import java.io.File; import java.io.IOException; import java.util.List; import org.dresdenocl.metamodels.uml2.UML2MetamodelPlugin; import org.dresdenocl.model.ModelAccessException; import org.dresdenocl.modelbus.ModelBusPlugin; import org.dresdenocl.testsuite._abstract.AbstractDresdenOclTest; import org.dresdenocl.tools.codegen.declarativ.IOcl2DeclSettings; import org.dresdenocl.tools.codegen.declarativ.ocl2sql.IOcl2Sql; import org.dresdenocl.tools.codegen.declarativ.ocl2sql.Ocl2SQLFactory; import org.dresdenocl.tools.codegen.declarativ.ocl2sql.test.Ocl2SqlTestPlugin; import org.dresdenocl.tools.codegen.exception.Ocl2CodeException; import org.dresdenocl.tools.template.TemplatePlugin; import org.dresdenocl.tools.template.exception.TemplateException; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; public class SingleOcl2Sql_optimizeTest extends SingleOcl2SqlTest { @BeforeClass public static void setUpClass() throws IOException { expected = parseFile(AbstractDresdenOclTest.getFile( "solution/view.sql", Ocl2SqlTestPlugin.PLUGIN_ID) .getAbsolutePath()); } @Before public void setUp() { try { model = ModelBusPlugin .getMetamodelRegistry() .getMetamodel(UML2MetamodelPlugin.ID) .getModelProvider() .getModel( AbstractDresdenOclTest.getFile( "model/university_complex.uml", Ocl2SqlTestPlugin.PLUGIN_ID)); } catch (IllegalArgumentException e) { fail("Wrong parameter"); } catch (ModelAccessException e) { fail("The model can't generate"); } catch (IOException e) { fail("Cannot find model: " + e.getMessage()); } boolean exists = (new File(sourcePath)).exists(); if (!exists) { new File(sourcePath).mkdir(); } // else { // fail("Path " + sourcePath + " already exits"); // } } @After public void tear_down() { if (model != null) { ModelBusPlugin.getModelRegistry().removeModel(model); } boolean exists = (new File(sourcePath)).exists(); if (exists) { deleteDir(new File(sourcePath)); } else { fail("Path " + sourcePath + " already exits"); } } protected List<String> runCodeGenerator(IOcl2DeclSettings settings, int index) throws Ocl2CodeException { try { settings.setTemplateGroup(TemplatePlugin.getTemplateGroupRegistry() .getTemplateGroup("Standard(SQL)")); } catch (TemplateException e1) { fail("Can't load Standard SQL template."); } IOcl2Sql ocl2Sql = Ocl2SQLFactory.getInstance().createSQLCodeGenerator( settings); ocl2Sql.setInputModel(model); return ocl2Sql.transformFragmentCode(constraints); } }