package org.modeldriven.fuml.test.validation; import java.io.File; import junit.framework.Test; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.modeldriven.fuml.Fuml; import org.modeldriven.fuml.FumlException; import org.modeldriven.fuml.environment.Environment; import org.modeldriven.fuml.environment.ExecutionEnvironment; import org.modeldriven.fuml.test.FUMLTest; import org.modeldriven.fuml.test.FUMLTestSetup; import fUML.Syntax.Activities.IntermediateActivities.Activity; import fUML.Syntax.CommonBehaviors.BasicBehaviors.Behavior; /** * */ public class IncrementalValidationTestCase extends FUMLTest { private static Log log = LogFactory.getLog(IncrementalValidationTestCase.class); private static Environment environment; // JUnit creates a new test class // for every test! public static Test suite() { return FUMLTestSetup.newTestSetup(IncrementalValidationTestCase.class); } public void setUp() throws Exception { if (environment == null) { String filename = "./target/test-classes/mdxml/fUML-Tests-Incremental-Validation.mdxml"; File file = new File(filename); assertTrue("file '" + filename + "' does not exist", file.exists()); Fuml.loadIncrementally(file, filename); environment = Environment.getInstance(); log.info("done"); } } public void testCopierCaller() throws Exception { try { execute("CopierCaller"); assertTrue("expected thrown exception", false); } catch (FumlException e) { log.info(e.getMessage()); log.info("done"); } } private void execute(String activityName) { Behavior behavior = environment.findBehavior(activityName); if (behavior == null) throw new RuntimeException("behavior does not exist, " + activityName); log.info("executing behavior: " + behavior.name); ExecutionEnvironment execution = new ExecutionEnvironment(environment); execution.execute(behavior); } }