package org.dresdenocl.debug.test.unit;
import java.io.File;
import org.dresdenocl.debug.OclDebugger;
import org.dresdenocl.debug.test.AbstractDebuggerTest;
import org.dresdenocl.debug.test.CallStackConstants;
import org.dresdenocl.debug.test.DebugTestPlugin;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Contains test cases testing the debugging of operations defined on the String
* type.
*
* @author Claas Wilke
*/
public class TestDebugIterators extends AbstractDebuggerTest {
@BeforeClass
public static void setUp() throws Exception {
AbstractDebuggerTest.setUp();
}
@Test
public void testAnyIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/any01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testAnyIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/any01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testAnyIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/any01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testAnyIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/any01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testAnyIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/any01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testClosureIteratorStepInto01() throws Exception {
/* TODO Fix after bug fix. */
String oclResource = "resources/expressions/iterator/closure01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'closure'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (closure)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3). */
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/collect01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3). */
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/collect01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/collect01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/collect01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/collect01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'collect'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (collect)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'collect'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectNestedIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/collectNested01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3). */
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '<>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (<>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectNestedIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/collectNested01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectNestedIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/collectNested01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectNestedIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/collectNested01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testCollectNestedIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/collectNested01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'collectNested'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION
+ " (collectNested)", debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'collectNested'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/exists01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepInto02() throws Exception {
String oclResource = "resources/expressions/iterator/exists02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at (outer) iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at (inner) iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
assertVariableExist("i1", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertStackSize(3, debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertStackSize(4, debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i1'. */
assertCurrentLine(5, debugger);
assertStackSize(5, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i1)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i2'. */
assertCurrentLine(5, debugger);
assertStackSize(5, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i2)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertStackSize(4, debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + "1",
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertStackSize(4, debugger);
assertVariableNumber(7, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + "1",
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(7, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertStackSize(3, debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertStackSize(4, debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i1'. */
assertCurrentLine(5, debugger);
assertStackSize(5, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i1)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i2'. */
assertCurrentLine(5, debugger);
assertStackSize(5, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i2)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertStackSize(4, debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + "1",
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertStackSize(4, debugger);
assertVariableNumber(7, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + "1",
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(7, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/exists01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/exists01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepOver02_01() throws Exception {
String oclResource = "resources/expressions/iterator/exists02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepOver02_02() throws Exception {
String oclResource = "resources/expressions/iterator/exists02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at (outer) iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/exists01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/exists01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepReturn02_01() throws Exception {
String oclResource = "resources/expressions/iterator/exists02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testExistIteratorStepReturn02_02() throws Exception {
String oclResource = "resources/expressions/iterator/exists02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at (outer) iterator expression 'exists'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (exists)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'exists'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/forAll01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '0'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (0)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '0'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (0)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3) */
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '0'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (0)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '>'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (>)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepInto02() throws Exception {
String oclResource = "resources/expressions/iterator/forAll02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'forAll' (outer). */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll' (inner). */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i1'. */
assertCurrentLine(5, debugger);
assertStackSize(5, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i1)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i2'. */
assertCurrentLine(5, debugger);
assertStackSize(5, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i2)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + "1",
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(7, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + "1",
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(7, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i1", debugger);
assertVariableExist("i2", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/forAll01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/forAll01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepOver02_01() throws Exception {
String oclResource = "resources/expressions/iterator/forAll02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepOver02_02() throws Exception {
String oclResource = "resources/expressions/iterator/forAll02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'forAll' (outer). */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/forAll01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/forAll01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepReturn02_01() throws Exception {
String oclResource = "resources/expressions/iterator/forAll02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testForAllIteratorStepReturn02_02() throws Exception {
String oclResource = "resources/expressions/iterator/forAll02.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'forAll'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'forAll' (outer). */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (forAll)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'forAll'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIterateStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/iterate01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Initialization of iterate variable. */
/* Debugger at integer literal '0'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (0)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("sum", debugger);
assertVariableExist("i", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'sum'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (sum)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'sum'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (sum)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("sum", debugger);
assertVariableExist("i", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'sum'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (sum)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'sum'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (sum)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3) */
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("sum", debugger);
assertVariableExist("i", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'sum'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (sum)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'sum'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (sum)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '+'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (+)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist("sum", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_ITERATE_EXPRESSION_RESULT, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIterateStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/iterate01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_ITERATE_EXPRESSION_RESULT, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIterateStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/iterate01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_ITERATE_EXPRESSION_RESULT, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIterateStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/iterate01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIterateStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/iterate01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterate expression. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATE_EXPRESSION, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterate exp. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIsUniqueIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/isUnique01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3) */
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIsUniqueIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/isUnique01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIsUniqueIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/isUnique01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIsUniqueIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/isUnique01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testIsUniqueIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/isUnique01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'isUnique'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (isUnique)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'isUnique'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testOneIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/one01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testOneIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/one01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testOneIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/one01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testOneIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/one01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testOneIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/one01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'one'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (one)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testRejectIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/reject01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3). */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testRejectIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/reject01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testRejectIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/reject01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testRejectIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/reject01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testRejectIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/reject01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'reject'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (reject)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'reject'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSelectIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/select01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3). */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSelectIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/select01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSelectIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/select01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSelectIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/select01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSelectIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/select01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at iterator expression 'select'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (select)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'select'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSortedByIteratorStepInto01() throws Exception {
String oclResource = "resources/expressions/iterator/sortedBy01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (3) */
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_ELEMENTS, debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_VALUES, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_ELEMENTS, debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_VALUES, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over third element (3). */
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_ELEMENTS, debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_VALUES, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_ELEMENTS, debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_VALUES, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSortedByIteratorStepOver01_01() throws Exception {
String oclResource = "resources/expressions/iterator/sortedBy01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_ELEMENTS, debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_VALUES, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSortedByIteratorStepOver01_02() throws Exception {
String oclResource = "resources/expressions/iterator/sortedBy01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (3) */
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_ELEMENTS, debugger);
assertVariableExist(OclDebugger.OCL_SORTED_BY_VALUES, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSortedByIteratorStepReturn01_01() throws Exception {
String oclResource = "resources/expressions/iterator/sortedBy01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testSortedByIteratorStepReturn01_02() throws Exception {
String oclResource = "resources/expressions/iterator/sortedBy01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'OrderedSet'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(
CallStackConstants.COLLECTION_LITERAL + " (OrderedSet)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (3) */
/* Debugger at iterator expression 'sortedBy'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (sortedBy)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after iterator exp 'sortedBy'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
@Test
public void testImplicitIteratorVariable01() throws Exception {
/* TODO Fix after bug fix. */
String oclResource = "resources/expressions/iterator/implicitItVar01.ocl";
OclDebugger debugger = generateDebugger(oclResource);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
/* Start debugging. */
File resourceFile = getFile(oclResource, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 5);
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '1'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (1)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '3'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (3)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at collection literal 'set'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Set)",
debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at iterator expression 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over first element (1) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Iteration over second element (2) */
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at variable call 'i'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.VARIABLE_CALL + " (i)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '2'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (2)", debugger);
assertVariableNumber(4, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(5, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at operation call '='. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.OPERATION_CALL + " (=)", debugger);
assertVariableNumber(6, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_PARAMETER_VALUE_VARIBALE + 1,
debugger);
assertVariableExist(OclDebugger.OCL_OPERATION_CALL_RESULT, debugger);
assertVariableExist("i", debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ITERATOR_EXPRESSION + " (any)",
debugger);
assertVariableNumber(3, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_CALL_SOURCE_VATRIABLE_NAME,
debugger);
assertVariableExist(OclDebugger.OCL_ITERATOR_EXPRESSION_RESULT,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after iterator exp 'any'. */
assertCurrentLine(4, debugger);
assertStackSize(1, debugger);
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
/* 'result' should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_RESULT_VATRIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO,
DebugEvent.CONSTRAINT_INTERPRETED, debugger);
}
}