blob: f2e4fe4fb851c2e356b11dfde4f250b2edb6cb91 [file] [log] [blame]
package org.eclipse.papyrus.bpmn.bpmnprofiletest;
import static org.junit.Assert.assertEquals;
import org.eclipse.emf.common.util.EList;
import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProcess;
import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfilePackage;
import org.eclipse.papyrus.bpmn.BPMNProfile.FlowElement;
import org.eclipse.papyrus.bpmn.BPMNProfile.SubProcess;
import org.eclipse.papyrus.bpmn.BPMNProfile.Task;
import org.eclipse.papyrus.bpmn.BPMNProfile.impl.SubProcessCustom;
import org.eclipse.papyrus.bpmn.util.BPMNResource;
import org.eclipse.uml2.uml.Activity;
import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.OpaqueAction;
import org.eclipse.uml2.uml.StructuredActivityNode;
import org.eclipse.uml2.uml.UMLFactory;
import org.eclipse.uml2.uml.util.UMLUtil;
import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class SubProcessCustomTest {
private SubProcess subProcess;
private Task task;
@Before
public void setUp(){
Model model = BPMNResource.createBPMNModel();
Activity activity = UMLFactory.eINSTANCE.createActivity();
model.getPackagedElements().add(activity);
StereotypeApplicationHelper.getInstance(null).applyStereotype(activity, BPMNProfilePackage.eINSTANCE.getBPMNProcess());
StructuredActivityNode node = UMLFactory.eINSTANCE.createStructuredActivityNode();
activity.getOwnedNodes().add(node);
StereotypeApplicationHelper.getInstance(null).applyStereotype(node, BPMNProfilePackage.eINSTANCE.getSubProcess());
OpaqueAction action = UMLFactory.eINSTANCE.createOpaqueAction();
node.getNodes().add(action);
task = (Task) StereotypeApplicationHelper.getInstance(null).applyStereotype(action, BPMNProfilePackage.eINSTANCE.getTask());
UMLUtil.getStereotypeApplication(activity, BPMNProcess.class);
subProcess = UMLUtil.getStereotypeApplication(node, SubProcess.class);
}
/*
* test that custom code is present in generated code
*/
@Test
public void getFlowElementsGeneratedTest(){
try{
subProcess.getFlowElements();
}
catch(UnsupportedOperationException e){
Assert.fail("missing custom code !");
}
}
/*
* test custom code
*/
@Test
public void getFlowElementsCustomTest(){
EList<FlowElement> flowElements = SubProcessCustom.getFlowElements(subProcess);
Assert.assertNotNull(flowElements);
assertEquals(task, flowElements.get(0));
}
/*
* test full path
*/
@Test
public void getFlowElementsTest(){
EList<FlowElement> flowElements = subProcess.getFlowElements();
Assert.assertNotNull(flowElements);
assertEquals(task, flowElements.get(0));
}
/*
* test that custom code is present in generated code
*/
@Test
public void getLaneSetTest(){
try{
subProcess.getLaneSets();
}
catch(UnsupportedOperationException e){
Assert.fail("missing custom code !");
}
}
}