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 TestDebugLiterals extends AbstractDebuggerTest {
@BeforeClass
public static void setUp() throws Exception {
AbstractDebuggerTest.setUp();
}
@Test
public void testBooleanLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/boolean01.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 boolean literal 'true'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.BOOLEAN_LITERAL + " (true)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after boolean literal 'true'. */
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 testBooleanLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/boolean01.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 boolean literal 'true'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.BOOLEAN_LITERAL + " (true)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after boolean literal 'true'. */
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 testBooleanLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/boolean01.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 boolean literal 'true'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.BOOLEAN_LITERAL + " (true)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after boolean literal 'true'. */
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 testCollectionLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/collection01.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection literal. */
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 testCollectionLiteralStepInto02() throws Exception {
String oclResource = "resources/expressions/literals/collection02.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection item. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
assertStackSize(2, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection literal. */
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
assertCurrentLine(4, debugger);
assertStackSize(1, 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 testCollectionLiteralStepInto03() throws Exception {
String oclResource = "resources/expressions/literals/collection03.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
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(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '0'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (42)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection range. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
assertStackSize(2, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection literal. */
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
assertCurrentLine(4, debugger);
assertStackSize(1, 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 testCollectionLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/collection01.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection literal. */
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 testCollectionLiteralStepOver02() throws Exception {
String oclResource = "resources/expressions/literals/collection02.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '42'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (42)", debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection item. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
assertStackSize(2, debugger);
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after collection literal. */
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
assertCurrentLine(4, debugger);
assertStackSize(1, 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 testCollectionLiteralStepOver03() throws Exception {
String oclResource = "resources/expressions/literals/collection03.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after collection literal. */
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
assertCurrentLine(4, debugger);
assertStackSize(1, 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 testCollectionLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/collection01.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after collection literal. */
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 testCollectionLiteralStepReturn02() throws Exception {
String oclResource = "resources/expressions/literals/collection02.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after collection literal. */
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
assertCurrentLine(4, debugger);
assertStackSize(1, 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 testCollectionLiteralStepReturn03() throws Exception {
String oclResource = "resources/expressions/literals/collection03.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 collection literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.COLLECTION_LITERAL + " (Bag)",
debugger);
/* The oclCollection variable should be on the stack. */
assertVariableNumber(2, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist(OclDebugger.OCL_COLLECTION_RESULT_VATRIABLE_NAME,
debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after collection literal. */
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
assertCurrentLine(4, debugger);
assertStackSize(1, 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 testEnumerationLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/enumeration01.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 enumeration literal 'literal1'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ENUMERATION_LITERAL
+ " (TestEnumeration::Literal1)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after enumeration literal 'literal1'. */
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 testEnumerationLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/enumeration01.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 enumeration literal 'literal1'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ENUMERATION_LITERAL
+ " (TestEnumeration::Literal1)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after enumeration literal 'literal1'. */
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 testEnumerationLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/enumeration01.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 enumeration literal 'literal1'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.ENUMERATION_LITERAL
+ " (TestEnumeration::Literal1)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after enumeration literal 'literal1'. */
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 testIntegerLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/integer01.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 integer literal '42'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (42)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after integer literal '42'. */
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 testIntegerLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/integer01.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 integer literal '42'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (42)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after integer literal '42'. */
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 testIntegerLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/integer01.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 integer literal '42'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (42)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after integer literal '42'. */
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 testInvalidLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/invalid01.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 invalid literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.INVALID_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after invalid literal. */
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 testInvalidLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/invalid01.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 invalid literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.INVALID_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after invalid literal. */
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 testInvalidLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/invalid01.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 invalid literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.INVALID_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after invalid literal. */
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 testRealLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/real01.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 real literal '42.7'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.REAL_LITERAL + " (42.7)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after real literal '42.7'. */
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 testRealLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/real01.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 real literal '42.7'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.REAL_LITERAL + " (42.7)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after real literal '42.7'. */
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 testRealLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/real01.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 real literal '42.7'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.REAL_LITERAL + " (42.7)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after real literal '42.7'. */
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 testStringLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/string01.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 string literal 'some'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.STRING_LITERAL + " ('some')",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after string literal 'some'. */
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 testStringLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/string01.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 string literal 'some'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.STRING_LITERAL + " ('some')",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after string literal 'some'. */
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 testStringLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/string01.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 string literal 'some'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.STRING_LITERAL + " ('some')",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after string literal 'some'. */
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 testTupleLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/tuple01.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 tuple literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at tuple literal part 'a = 42'. */
assertCurrentLine(5, debugger);
assertStackSize(3, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL_PART + " (a)",
debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at integer literal '42'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.INTEGER_LITERAL + " (42)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at tuple literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL, debugger);
assertVariableNumber(2, debugger);
/* Part a should be a variable. */
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist("a", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at tuple literal part 'b = 'some''. */
assertCurrentLine(5, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL_PART + " (b)",
debugger);
assertStackSize(3, debugger);
assertVariableNumber(2, debugger);
/* Part a should be a variable. */
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist("a", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at string literal 'some'. */
assertCurrentLine(5, debugger);
assertStackSize(4, debugger);
assertStackName(CallStackConstants.STRING_LITERAL + " ('some')",
debugger);
assertVariableNumber(2, debugger);
/* Part a should be a variable. */
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist("a", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger at tuple literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL, debugger);
assertVariableNumber(3, debugger);
/* Part b should be a variable. */
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist("a", debugger);
assertVariableExist("b", debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after tuple literal. */
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 testTupleLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/tuple01.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 tuple literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger at tuple literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL, debugger);
assertVariableNumber(2, debugger);
/* Part a should be a variable. */
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist("a", debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger at tuple literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL, debugger);
assertVariableNumber(3, debugger);
/* Part b should be a variable. */
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
assertVariableExist("a", debugger);
assertVariableExist("b", debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after tuple literal. */
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 testTupleLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/tuple01.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 tuple literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TUPLE_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after tuple literal. */
assertStackName(CallStackConstants.EXPRESSION_IN_OCL, debugger);
assertCurrentLine(4, debugger);
assertStackSize(1, 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 testTypeLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/type01.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 type literal 'TestClass'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TYPE_LITERAL
+ " (resource::package01::TestClass)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after type literal 'TestClass'. */
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 testTypeLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/type01.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 type literal 'TestClass'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TYPE_LITERAL
+ " (resource::package01::TestClass)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after type literal 'TestClass'. */
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 testTypeLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/type01.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 type literal 'TestClass'. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.TYPE_LITERAL
+ " (resource::package01::TestClass)", debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after type literal 'TestClass'. */
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 testUndefinedLiteralStepInto01() throws Exception {
String oclResource = "resources/expressions/literals/undefined01.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 undefined literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.UNDEFINED_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_INTO, DebugEvent.SUSPENDED, debugger);
/* Debugger after undefined literal. */
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 testUndefinedLiteralStepOver01() throws Exception {
String oclResource = "resources/expressions/literals/undefined01.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 undefined literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.UNDEFINED_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_OVER, DebugEvent.SUSPENDED, debugger);
/* Debugger after undefined literal. */
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 testUndefinedLiteralStepReturn01() throws Exception {
String oclResource = "resources/expressions/literals/undefined01.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 undefined literal. */
assertCurrentLine(5, debugger);
assertStackSize(2, debugger);
assertStackName(CallStackConstants.UNDEFINED_LITERAL, debugger);
assertVariableNumber(1, debugger);
assertVariableExist(OclDebugger.SELF_VARIABLE_NAME, debugger);
debugStepAndWaitFor(DebugStep.STEP_RETURN, DebugEvent.SUSPENDED,
debugger);
/* Debugger after undefined literal. */
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);
}
}